我想有条件地加载一个实体和它的 child (我只想在 child.IsActive == true 时急切加载 child )。我如何执行以下操作?
var parent =
from p in db.tblParents.Include("tblChildren") <-- where tblChildren.IsActive == true
where p.PrimaryKey == 1
select p;
注意:我不想返回匿名类型。
谢谢。
最佳答案
这样做的一种方法是:
var parent = from p in db.tblParents where p.PrimaryKey == 1
select new {
Parent = p,
Children = p.tblChildren.Where(c => c.IsActive == true)
}.ToList();
但是,您可能不喜欢返回匿名类型的想法,那么我建议这样编码:
var parent = (from p in db.tblParents where p.PrimaryKey == 1).Single();
var childrens = ctx.Contacts.Where(c => c.ParentID == 1 && c.IsActive == true);
foreach (var child in childrens) {
parent.tblChildren.Add(child);
}
关于entity-framework - 有条件的急切加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3718400/