我的查询如下:
var list = context.Items
.Where(i => i.Title.StartsWith(searchValue) ||
(i.Title + string.format("{0}prep", i.OrderNumber))
.StartsWith(searchValue))
.ToList();
但是我得到了异常-对象没有设置为对象的实例。
我还试图在.Where
之后添加.AsEnumerable
,但不起作用。
没有AsEnumerable
,我得到:
LINQ to Entities不能识别方法System。字符串格式(系统。字符串,System.Object)'方法,而此方法不能翻译成store表达式
我在这里做错了什么?
我在这里做错了什么?
答案在异常消息中:
LINQ to Entities不识别
System.String Format(System.String, System.Object)
方法,该方法不能转换为store表达式。
换句话说,string.Format
方法不被支持,因为它不能被转换为SQL查询。
幸运的是,字符串连接是支持的,所以你可以用这个来代替:
var list = context.Items.Where(i => i.Title.StartsWith(searchValue)
|| (i.Title + i.OrderNumber + "prep").StartsWith(searchValue))
.ToList();