2012-03-06 116 views
0

我寫了一個小函數,它返回一個通用的IQueryable對象。 這裏是代碼:如何在EF中包含子集?

public IQueryable<T> GetList<T>() where T : class 
    { 
     var result = dbContext.CreateObjectSet<T>(); 
     return result; 
    } 

我有一個數據庫的內容表。它已被轉換爲內容對象。內容對象有一個名爲State的相關子集。我如何將它與我的查詢結合起來?

這裏是我當前的功能:

public IQueryable<Content> GetContentList() 
    { 
     var contentList = GetList<Content>(); 
     return contentList; 
    } 

它的工作原理,但是,不包括國子集。我的問題是如何包含它?

非常感謝。

回答

0

我不熟悉CreateObjectSet<T>。你沒有ContentSet用LINQ to Entities進行查詢嗎?

var result = dbContext.ContentSet.Include("States"); 

在我的示例中,Include方法是明確包含您的狀態的方法。

+2

一致認爲'.Include'是要走的路,但很少有一個理由不使用強類型等價的:'dbContext.ContentSet.Include(C => c.States)'。 – hvd 2012-03-06 21:47:02

+0

@ hvd:定義的地方在哪裏?我看到的是字符串版本@ http://msdn.microsoft.com/en-us/library/bb738708.aspx – 2012-03-07 04:20:51

+0

@JamesManning這是一個擴展方法'System.Data.Entity.DbExtensions.Include'。我認爲它可以從EF4.1開始使用,但我可能弄錯了。 – hvd 2012-03-07 06:46:00

相關問題