Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EF中使用Linq/Lambda的三表查询_C#_Linq_Entity Framework_Lambda - Fatal编程技术网

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())
});
你也有可能有更多的潜在问题,不过