Linq to SQL 使用 Lightswitch 计算的查询过滤器 属性
Linq to SQL query filter with Lightswitch computed property
通过我在上一个问题中收到的 help/suggestions,我设法将我的问题缩小到计算的 属性。
这是失败的查询过滤:
query = query.Where(a => a.collection.Any(b => b.Name.StartsWith(c)));
那里的一切似乎都工作正常,但 Name
导致查询失败。 Name
是 b
的计算 属性,当我用标准 属性 替换它时,查询有效。
我不明白 sql 中的含义,所以我不知道如何 fix/replace 以便我可以按 属性 进行过滤。如果有人能解释该查询背后出了什么问题,我们将不胜感激。
您应该可以通过以下方式实现您的目标:
var start = "Joh";
var query = content.Where(entity =>
entity.ExampleCollection.Exist(obj =>
obj.Name.StartsWith(start));
这将根据它是否 Exist
在集合中并满足您的开始条件进行过滤。
计算属性未在基础数据库中定义,因此您不能在查询中引用它们。
通过我在上一个问题中收到的 help/suggestions,我设法将我的问题缩小到计算的 属性。
这是失败的查询过滤:
query = query.Where(a => a.collection.Any(b => b.Name.StartsWith(c)));
那里的一切似乎都工作正常,但 Name
导致查询失败。 Name
是 b
的计算 属性,当我用标准 属性 替换它时,查询有效。
我不明白 sql 中的含义,所以我不知道如何 fix/replace 以便我可以按 属性 进行过滤。如果有人能解释该查询背后出了什么问题,我们将不胜感激。
您应该可以通过以下方式实现您的目标:
var start = "Joh";
var query = content.Where(entity =>
entity.ExampleCollection.Exist(obj =>
obj.Name.StartsWith(start));
这将根据它是否 Exist
在集合中并满足您的开始条件进行过滤。
计算属性未在基础数据库中定义,因此您不能在查询中引用它们。