Asp.net mvc MVC和实体框架-如何从多个表/导航属性中选择列值
我是使用MVC和LINQ来创建实体的新手。我不知道如何从为每个表定义了导航属性的多个表中选择列值 以下是各表的结构: 表:主表Asp.net mvc MVC和实体框架-如何从多个表/导航属性中选择列值,asp.net-mvc,entity-framework,linq-to-entities,Asp.net Mvc,Entity Framework,Linq To Entities,我是使用MVC和LINQ来创建实体的新手。我不知道如何从为每个表定义了导航属性的多个表中选择列值 以下是各表的结构: 表:主表 字段:主ID(主键)、案例编号、状态、[其他字段…] 导航属性:DetailsTable,客户端 表:DetailsTable 字段:DetailsID(主键)、MasterID(FK)、InsuranceId(FK)、DetailsStatus 导航属性:MasterTable、保险 表:客户 字段:客户id(主键)、客户名称、客户名称、地址id、电话id、主id(F
字段:主ID(主键)、案例编号、状态、[其他字段…]
导航属性:DetailsTable,客户端 表:DetailsTable
字段:DetailsID(主键)、MasterID(FK)、InsuranceId(FK)、DetailsStatus
导航属性:MasterTable、保险 表:客户
字段:客户id(主键)、客户名称、客户名称、地址id、电话id、主id(FK)
导航属性:订单、地址、电话 表:保险
字段:InsuranceId(主键)、InsuranceName、Address1、Address2、ZipCode、State
导航属性:客户、详细信息、地址 表:地址
字段:地址id(PK)、地址1、地址2、ZipCode、状态
导航属性:状态 表:状态
字段:State_id(PK),StateAbbrev
导航属性:国家/地区 表:电话
字段:电话号码(PK)、家庭、工作、手机 我如何才能提取详细信息数据:
-主表中的案例编号、状态
-InsuranceName、Address1、Address2、ZipCode、保险表中的状态(基于DetailsTable中的InsuranceId)
-来自DetailsTable的DetailsStatus-CustFName、CustFName、Address1、Address2、ZipCode、客户表中的状态(*基于Customers.MasterID=MasterTable.MasterID*)
谢谢 这只是投影,看起来像:
var query = from master in dbContext.MasterTables
select {
master.CaseNumber,
master.Status,
Details = master.DetailTables.Select(detail => new {
detail.DetailStatus,
detail.Insurance.InsuranceName,
detail.Insurance.Address1,
detail.Insurance.Address2,
detail.Insurance.ZipCode,
detail.Insurance.State
},
Customers = master.Clients.Select(customer => new {
customer.CustFName,
customer.CustLName,
customer.Address.Address1,
customer.Address.Address2,
customer.Address.ZipCode,
customer.Address.State
}
};
我不确定这是否正是你想要的,但它应该给你一些想法,以及如何进行这样的查询。此查询使用匿名类型进行投影,但也可以使用自定义视图模型
您也可以这样做:
var query = dbContext.MasterTables
.Include(m => m.Clients)
.Include(m => m.DetailsTables.Select(d => d.Insurance));
它只需加载主数据以及所有相关客户、详细信息和保险。之后,您可以在代码中进行投影,或者直接在视图中使用实体
它将您是否有模型,以及为所有表设置的DBContext?是的,这些表有模型和DBContext。嗨,Ladislav,谢谢您回答我的问题。我将尝试一下,并让您知道结果。@LadislavMrnka我如何选择DetailsTables的多个值??例如,我只需要3个马厩