我有 3 个实体:
class Foo {
public Guid? BarId { get; set; } //Has optional bar
[NotMapped]
public boolean? HasXyzzy { get; set; }
}
class Bar {
...
}
class Xyzzy {
public Guid BarId { get; set; } //Always has Bar
}
我想Foo
从数据库中检索一些并填写他们的HasXyzzy
属性。我正在使用 LINQ 到实体扩展方法。
我在想这样的事情:
var xyzzys = xyzzyRepository.GetAll(); //IQueryable
var foos = fooRepository.GetAll()
.Where() //Some condition
.SelectMany(
foo => xyzzys.Where(xyzzy => xyzzy.BarId == foo.BarId).DefaultIfEmpty(),
(foo, xyzzy) => new Foo {
BarId = foo.BarId,
HasXyzzy = xyzzy != null
});
但这很乏味,因为我的 Foo 类有很多属性。
这样做的正确方法是什么?