【发布时间】:2021-01-19 17:02:26
【问题描述】:
我有一个问题,我不确定如何解决。我有三个模型,类似如下。
public class Parent : BaseEntity {
[Key]
public string Guid { get; set; }
[NotMapped]
public List<Child> Childs { get; set; }
}
public class Child : BaseEntity {
[Key]
public string Guid { get; set; }
public string ParentGuid { get; set; }
public List<Detail> Details { get; set; }
}
public class Detail : BaseEntity {
[Key]
public string Guid { get; set; }
[ForeignKey(nameof(Child))]
public string ChildGuid { get; set; }
public Child Child { get; set }
}
我试图同时包括孩子和细节。但是,我不能保证子表中的 Guid 存在于父表中。这就是我选择 NotMapped 的原因,但如果需要,我愿意并且能够改变它。现在我有这个:
query.GroupJoin(context.Parents,
parent => parent.ChildGuid,
child => child.Guid,
(parent, childs) => new
{
Parent = parent,
Childs = childs
}
)
.AsEnumerable()
.Select(combos =>
{
combos.Parent.Childs = combos.Childs.ToList();
return combos.Parent;
})
.AsQueryable();
但这当然不包括细节。不确定我是否在这里朝着正确的方向前进,但如果有人以前遇到过这个问题,可以使用一些方向。
【问题讨论】:
标签: c# entity-framework .net-core