Asp.net mvc MVC和实体框架-如何从多个表/导航属性中选择列值

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

我是使用MVC和LINQ来创建实体的新手。我不知道如何从为每个表定义了导航属性的多个表中选择列值

以下是各表的结构:

表:主表
字段:主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个马厩