使用Lamba LINQ实体返回相关字段

时间:2015-07-30 19:15:52

标签: sql sql-server entity-framework lambda

我见过许多与如何从具有匿名类型的EF实体返回有限字段集相关的问题。我的问题恰恰相反。我想从相关表中返回值以及实体表中的所有字段:

IQueryable<EntityModels.TBLEFFORT> query = db.TBLEFFORT.AsQueryable();
query = query.Where(a => a.EFFDELETE == "0");
if (!string.IsNullOrEmpty(sGuid))
{
   query = query.Where(a => a.TBLEFFORTLINK.Any(b => b.TBLSHS.TBLTACT.Any(c => c.CGUID == sGuid)));
}

 query.Select(x => new EffortSearchResult()
 {
     Efguid = x.EFGUID,
     Efstatus = x.EFSTATUS
 });

这里我的基本实体是TBLEFFORT,我在EFFDELETE字段上直接查询它,然后我用相关的表TBLSHS查询它。 但是,在我的anon返回对象中,我只有来自TBLEFFORT(EFGUID和EFSTATUS)的字段。如何在我的匿名返回对象中包含相关TBLSHS实体的字段? 相关表是查找,因此它们将是1:1。我不打算根据TBLEFFORT中的FK字段返回复杂集合

1 个答案:

答案 0 :(得分:0)

我明白了。你只需在你的anon类型中扩展并从相关表中挖掘你需要的东西:

Shguid = x.TBLEFFORTLINK.Select(b => b.TBLSHS.SOMEFIELD).FirstOrDefault(),