假设我们有:
public class Foo
{
public long Id { get; set; }
public string Name { get; set; }
public ICollection<Bar> { get; set; }
}
public class Bar
{
public long Id { get; set; }
public int Age { get; set; }
public virtual Foo { get; set; }
public long FooId { get; set; }
}
我们的数据可能看起来像这样:(假设List<Foo>
)
// Forget the syntax, just to demonstrate data
foo[0] = new Foo{ Id = 1, Name = "A", Bar = { collection of Bars with Ages over 10 }};
foo[1] = new Foo{ Id = 2, Name = "B", Bar = { collection of Bars with Ages over 20 }};
foo[2] = new Foo{ Id = 3, Name = "C", Bar = { collection of Bars with Ages under 10 }};
现在,假设我想要所有这些Foo
s,但他们Bar
的 s 仅包括Bar
年龄在 5-25 之间的 a。
对于这样的事情,我会反向工作并获取所有 Bars,然后将所有关联的 Foos 获取到这些 bar,并将 Bars 重新映射回 Foo。似乎过于复杂。
更清楚一点 -所有的 Foos 都只有 5 到 25 岁的酒吧:)