求一个全是数字的字符列的最大值或将该列按数字排序时,如下写法会抛出标题上的错误:
context.Table.Max(p => Convert.ToInt32(p.Id));
Entity Framework 4.0之前我们可以这样写不报错:
context.Table.Select(p => p.Id).ToArray().Max(p => Convert.ToInt32(p))
Entity Framework 4.0以后我们可以直接执行SQL语句,写法如下:
context.ExecuteStoreQuery<Int32>("select max(convert(int,Id)) from Table").First();