Entity framework 实体框架查询-从子表返回唯一行
我有如下实体框架模型和相应数据库表中的数据: 问题:如何查询模型以返回与给定的Entity framework 实体框架查询-从子表返回唯一行,entity-framework,linq-to-entities,distinct,Entity Framework,Linq To Entities,Distinct,我有如下实体框架模型和相应数据库表中的数据: 问题:如何查询模型以返回与给定的人员相关的销售类型的所有行(完整实体,而不是匿名类型) 如果数据如上所述,那么对于John,查询应该返回sales\u type-表中的前三行,对于Mark,它应该返回第2行和第5行 ctx.PersonSales .Where(ps=> ps.Person.Id = myPersonId) .Where(ps=> ps.SalesMapping != null && ps.S
人员相关的销售类型的所有行(完整实体,而不是匿名类型)
如果数据如上所述,那么对于John,查询应该返回sales\u type
-表中的前三行,对于Mark,它应该返回第2行和第5行
ctx.PersonSales
.Where(ps=> ps.Person.Id = myPersonId)
.Where(ps=> ps.SalesMapping != null && ps.SalesMapping.SalesType != null)
.Select(ps=>ps.SalesMapping.SalesType)
.Distinct();
也许是这样的:
var personId=1;
var result= (
from salesType in db.sales_type
where
(
from salesMapping in db.sales_mapping
join personSale in db.person_Sales
on salesMapping.id equals personSale.sales_mapping_id
join person in db.person
on personSale.person_id equals person.id
where
person.Id == personId
select salesMapping.sales_type_id
).Contains(salesType.id)
select salesType
).ToList();
其中db是linq数据上下文是否为每条记录寻找长的单行?