这可能看起来很复杂,但我只是想从A中选择所有记录及其子记录,其中子记录存在某些条件。我正在寻找可以添加到变量A中的语法,以允许我过滤一堆条件(类似于规范模式?)
如果您有像这样的嵌套视图:
您好!这句话的英译中文大致是:“您如何使用这些条件筛选表达式 A?换句话说,您是否可以使用类似 a.Where() 的 where 表达式来过滤嵌套属性?”
我真正需要的是像这样的东西:
尤其是如果我能做到这点:
如果您有像这样的嵌套视图:
var a = from Arow in Atable
where ???
select new AViewModel { // (image Products)
id = Arow.id,
name = Arow.Name,
Brows = (from Brow in Arow.Brows
select new BViewModel { // (sold in different regions)
id = Brow.id,
name = Brow.Name,
Crows = (from Crow in Brow.Crows
select new CViewModel { // (and in many stores)
id = Crow.id,
name = Crow.Name
}
}
};
以下是类似这样的来自网页的查询文本(规范模式?)。我们使用JQuery选择器用于操作符 (例如 ^= 表示“以…开头”)。
filter[] = { "Brow.Name = Joe", "Crow.Name = Kim" }
您好!这句话的英译中文大致是:“您如何使用这些条件筛选表达式 A?换句话说,您是否可以使用类似 a.Where() 的 where 表达式来过滤嵌套属性?”
var b = from row in a
where a.Brow.Where(b => b.name == "Joe") &&
a.Brow.Crow.Where(c => c.name == "Kim")
select row;
我真正需要的是像这样的东西:
Select *
from A join B on A.key = B.key join C on B.key = C.key -- propagated keys
where exists (select null from B where A.key = B.key and B.Name = "Joe") and
exists (select null from C where A.key = C.key and C.Name = "Kim")
尤其是如果我能做到这点:
var result = a.Where(first).Where(second);