LINQ to Entities 不识别方法“Int32 ToInt32(System.String)”,因此该方法无法转换为存储表达式

求一个全是数字的字符列的最大值或将该列按数字排序时,如下写法会抛出标题上的错误:

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();

猜你喜欢

转载自blog.csdn.net/ksy/article/details/8776727
今日推荐