ser*_*0ne 7 c# entity-framework entity-framework-core
考虑这个聚合根......
class Contact
{
ICollection<ContactAddress> Addresses { get; set; }
ICollection<ContactItem> Items { get; set; }
ICollection<ContactEvent> Events { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
......我用过的......
class Person
{
Contact ContactDetails { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
如何通过联系人急切加载所有集合?
我试过这个......
Context
.Set<Person>()
.Include(o => o.ContactDetails)
.ThenInclude(o => o.Addresses)
.ThenInclude(????)
. ...
Run Code Online (Sandbox Code Playgroud)
我也试过这个......
Context
.Set<Business>()
.Include(o => o.ContactDetails.Addresses)
.Include(o => o.ContactDetails.Events)
.Include(o => o.ContactDetails.Items)
Run Code Online (Sandbox Code Playgroud)
在某种程度上相关的说明,是否可以使用流畅的配置表达应该作为聚合根的一部分返回的内容?
Iva*_*oev 13
该ThenInclude模式允许您指定从根到单个叶的路径,因此,为了指定另一个叶的路径,您需要使用该Include方法从根重新启动该过程,并为每个叶重复该过程.
对于您的样本,它将是这样的:
Context.Set<Person>()
.Include(o => o.ContactDetails).ThenInclude(o => o.Addresses) // ContactDetails.Addresses
.Include(o => o.ContactDetails).ThenInclude(o => o.Items) // ContactDetails.Items
.Include(o => o.ContactDetails).ThenInclude(o => o.Events) // ContactDetails.Events
...
Run Code Online (Sandbox Code Playgroud)