C# EF中使用Linq/Lambda的三表查询
我有三张桌子C# EF中使用Linq/Lambda的三表查询,c#,linq,entity-framework,lambda,C#,Linq,Entity Framework,Lambda,我有三张桌子 开始(Id、acctId、detailId) 详细信息(Id、名称) 项目(Id、详细Id、描述) start与detail有一对一的关系,detail与项目有一对多的关系 我正在尝试编写lambda或linq查询,因此对于给定的acctId,我会得到name和desc。我使用EF尝试了以下操作,但结果不正确: var te = DbContext.Set<start>().Include("detail") .Where(a=&
(Id、acctId、detailId)开始
(Id、名称)详细信息
(Id、详细Id、描述)项目
start
与detail
有一对一的关系,detail
与项目有一对多的关系
我正在尝试编写lambda或linq查询,因此对于给定的acctId
,我会得到name
和desc
。我使用EF尝试了以下操作,但结果不正确:
var te = DbContext.Set<start>().Include("detail")
.Where(a=>a.acctId== id && a.detail.items.Any());
var te=DbContext.Set().Include(“详细信息”)
其中(a=>a.acctId==id&&a.detail.items.Any());
如果您有导航属性,并且只需要这些特定属性:
var te = DbContext.Set<start>().Where(a => a.acctId == id).Select(s => new
{
name = s.detail.name,
descs = s.detail.items.Select(i => i.desc).ToList()
});
var te=DbContext.Set()。其中(a=>a.acctId==id)。选择(s=>new
{
name=s.detail.name,
descs=s.detail.items.Select(i=>i.desc.ToList())
});
如果您有导航属性,并且您只需要这些特定属性,那么您也可能有更多的潜在问题
var te = DbContext.Set<start>().Where(a => a.acctId == id).Select(s => new
{
name = s.detail.name,
descs = s.detail.items.Select(i => i.desc).ToList()
});
var te=DbContext.Set()。其中(a=>a.acctId==id)。选择(s=>new
{
name=s.detail.name,
descs=s.detail.items.Select(i=>i.desc.ToList())
});
你也有可能有更多的潜在问题,不过