如何在linq where子句中添加组合列



我的查询如下:

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

相关内容

  • 没有找到相关文章

最新更新