【发布时间】:2013-02-15 20:28:40
【问题描述】:
好的,
我必须构建一个谓词以从 EF5 中的已知实体中选择未知数量的列 AND 按未知数量的列过滤 ONE 其中始终是来自子集合的名称。
这就是我最终需要的结果
var q = db.Set<Entity>()
.Where(e => e.Code.Contains("q") || e.Translations.FirstOrDefault(t => t.Culture.ID == "whatever").Description.Contains("q"))
.Select(e => new
{
e.ID,
e.Code,
Name = e.Translations.FirstOrDefault(t => t.Culture.ID == "whatever").Description
});
但我不确定如何为表达式构建谓词
e.Translations.FirstOrDefault(t => t.Culture.ID == "whatever").Description.Contains("q")
要选择的列和要过滤的字段以字符串数组的形式提供,在这种情况下,过滤器总是包含。
我熟悉构建谓词,这不是问题,更重要的是我以前从未研究过子集合,而且我现在处于完全“WTF”的状态:-)
任何和所有朝着正确方向的推动都将是最受重视的。
【问题讨论】:
标签: linq-to-entities entity-framework-5 predicatebuilder