[英]Get 3 layered object using entity framework
如果我有一个具有汽车列表的制造商对象,并且汽车对象具有一个特征列表,我该如何返回一个包含所有汽车列表的制造商对象,并且该列表中的每辆汽车都包含一个特征列表。 我在网上看到的每个示例仅使用一个2层对象。 这就是我所拥有的,它返回制造商和汽车列表,但是每辆汽车返回0的功能列表结果
Manufacturer man = new Manufacturer();
using (MyEntities db = new MyEntities())
{
man= (from m in db.Manufacturer.Include("Cars")
where m.Name.Trim().Equals("Ford")
select m).FirstOrDefault();
}
return man;
如果您想使用延迟加载,只需将您的导航属性声明为“虚拟”
如果您希望加载所有相关对象,可以使用Includes:
.Include("Cars").Include("Cars.Features")
这种方法的一个缺点是执行查询可能会很昂贵。 原因是将使用多个联接,并且结果服务器答案的大小可能会很大。
您可以使用此策略同时加载一个级别:
Manufacturer man = new Manufacturer();
using (MyEntities db = new MyEntities())
{
man= (from m in db.Manufacturer
where m.Name.Trim().Equals("Ford")
select m).FirstOrDefault();
models = man.SelectMany(m => m.Cars);
features = models.SelectMany(m => m.Features);
man.Load();
models.Load();
features.Load();
}
return man;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.