我正在尝试将我在Linq中工作的查询转换为可以在动态Linq(使用System.Linq.Dynamic)中工作的查询,因为我希望用户能够形成自己的查询,并且这个查询字符串将在运行时添加到其他查询字符串上。
我有一个查询:
db.incidents.Where(a => a.incidentLocations.Single().location.street.Contains(location);
我尝试将其转换为以下动态linq字符串:
query =
string.Concat("incidentLocations.Single().location.street.Contains(\"", location, "\")");
db.incidents.Where(query);
这里的location是包含搜索文本的字符串。
我已经成功将所有其他查询转换为动态linq,但这一个查询却出现了异常错误:
“不存在可用的聚合方法'Single'”
我知道动态linq不支持所有扩展方法,能否告诉我如何解决这个问题。
SingleOrDefault()
吗?它做的事情或多或少相同。唯一的区别是当找不到记录时它会返回null
而不是抛出错误。 - Bazzz