1

借助我在上一个问题中收到的帮助/建议,我设法将问题缩小到计算属性。

这是失败的查询过滤:

query = query.Where(a => a.collection.Any(b => b.Name.StartsWith(c)));

那里的一切似乎都工作正常,但Name会导致查询失败。Name是一个计算属性,b当我用标准属性替换它时,查询就起作用了。

我不明白这在 sql 中意味着什么,所以我不知道如何修复/替换它,所以我可以按该属性进行过滤。如果有人可以解释该查询背后出了什么问题,我们将不胜感激。

4

2 回答 2

2

计算属性未在基础数据库中定义,因此您无法在查询中引用它们。

于 2016-12-08T19:03:30.933 回答
0

您应该能够通过以下方式实现您的目标:

var start = "Joh";
var query = content.Where(entity => 
                  entity.ExampleCollection.Exist(obj => 
                  obj.Name.StartsWith(start));

这将根据它是否Exist在集合中并满足您的开始条件进行过滤。

于 2016-12-08T18:20:42.183 回答