这是外键关系表的简单表示例:
Foo Bar
------- -------
FooId BarId
FooName FooId (FK)
BarNumber
假设实体在 Linq to Entities 上下文中导入,并Bars
创建了导航属性。我现在可以执行这样的查询:
var query = context.Foos.Where(foo => foo.Bars.Any(bar => bar.BarNumber == 42));
它将根据特定表达式返回Foos
包含至少一个相关的所有内容。Bar
但是现在我处于不Bars
存在 Navigational 属性的特殊场景中。
我可以写一个如下所示的手册:
var query = context.Foos.Join(context.Bar
.Where(bar => bar.BarNumber == 42),
foo => foo.FooId,
bar => bar.FooId,
(foos, bars) => {
// What here?
});
我不确定这是否是正确的方法和/或如何处理结果选择器以获得等效结果甚至 sql 查询。