根据我在上一个问题中收到的帮助/建议,我设法将问题缩小到计算属性。
此处查询过滤失败:
query = query.Where(a => a.collection.Any(b => b.Name.StartsWith(c)));
其中的所有内容似乎都运行正常,但Name
会导致查询失败。 Name
是b
的计算属性,当我用标准属性替换它时,查询有效。
我不明白sql中的含义,所以我无法弄清楚如何修复/替换它,以便我可以通过该属性进行过滤。如果有人能够解释该查询背后出现的问题,我们将不胜感激。
答案 0 :(得分:2)
计算属性未在基础数据库中定义,因此您无法在查询中引用它们。
答案 1 :(得分:0)
您应该能够实现目标,具体如下:
var start = "Joh";
var query = content.Where(entity =>
entity.ExampleCollection.Exist(obj =>
obj.Name.StartsWith(start));
这将根据集合中的Exist
进行过滤,并符合您的起始条件。