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