如何从子表实体框架中筛选特定列

时间:2016-09-09 12:12:31

标签: c# entity-framework linq ef-code-first entity-framework-6

我有3个表1:多个父子关系

  • 表A
  • TableB(TableA的孩子)
  • TableC(TableB的孩子)

我可以使用查询

从这些表中检索所有数据
var data = dbContext.tableA.where(a => a.ID == rowID)
           .Include(a => a.tableB.Select(n => n.tableC)).SingleOrDefault();

对于TableC,我不希望从数据库中检索所有列。我只想要为TableC_FK检索ID,TableC列数据。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

  

我认为你不能投射到TableA,除非你有支持它的方案。   恕我直言最佳选择是匿名项目或@jpgrassi建议的使用Viewmodel / DTO

您可以在此处使用匿名,更多匿名投影教程here

var data = dbContext.tableA
                    .where(a => a.ID == rowID)
                    .Select(tableA=> new 
                    {
                       firstColumn = tableA.FirstColumn,
                       tableC = tableA.SelectMany(tableB=>tableB.TableC),
                    }.SingleOrDefault();