C#实体框架从嵌套对象返回列表
如何使用C#实体框架从嵌套对象返回列表,c#,entity-framework,linq,C#,Entity Framework,Linq,如何使用Include()从db返回doc中的WagonList 命名空间控制台应用程序1 { 班级计划 { 静态void Main(字符串[]参数) { 文档=新文档(); 文件Id=73243; document.Name=“SendingForm”; 文件。货车=新货车 { Depos=“Main”, Id=1, Street=“WestSide”, WagonList=新列表 { 新货车{Code=“MP”,Destination=“China”,Id=1,编号=90543}, 新货车
Include()
从db
返回doc
中的WagonList
命名空间控制台应用程序1
{
班级计划
{
静态void Main(字符串[]参数)
{
文档=新文档();
文件Id=73243;
document.Name=“SendingForm”;
文件。货车=新货车
{
Depos=“Main”,
Id=1,
Street=“WestSide”,
WagonList=新列表
{
新货车{Code=“MP”,Destination=“China”,Id=1,编号=90543},
新货车{Code=“MO”,Destination=“曼谷”,Id=2,编号=90543},
新货车{Code=“MI”,Destination=“Burma”,Id=3,编号=90543}
}
};
使用(var db=new SoccerContext())
{
//db.documents.Add(文件);
//db.SaveChanges();
Document doc=db.documents.Include(“货车”).FirstOrDefault();
}
}
}
公共类文档
{
[关键]
公共int Id{get;set;}
公共字符串名称{get;set;}
公共马车{get;set;}
}
公车
{
[关键]
公共int Id{get;set;}
公共字符串存储{get;set;}
公共字符串Street{get;set;}
公共列表WagoList{get;set;}
}
公车
{
[关键]
公共int Id{get;set;}
公共字符串代码{get;set;}
公共整数{get;set;}
公共字符串目标{get;set;}
}
类SoccerContext:DbContext
{
公共SoccerContext()
:base(“DocumentDB”)
{ }
公共数据库集文档{get;set;}
}
}
对于单个文档对象
,其直接含义是:
var wagonList = doc.Wagons.WagonList
对于文档列表
执行此操作(将平展文档层次结构中的货车列表):
到底是什么不起作用
Document doc=db.documents.Include(x=>x.WagonList).FirstOrDefault()代码>应该可以工作。即使您没有使用Include
,当您访问WagoList属性时,EF也会延迟加载wagons。
var wagonList = doc.Wagons.WagonList
var wagonList = docList.SelectMany(doc => doc.Wagons.WagonList);