2009-06-06 43 views
0

對於我正在處理的DataContext,我不想裝載表直到需要。 我想讓如果某個表被加載之前加載,將查了一下方法,但我最終有n方法做同樣的事情:自定義通用GetTable

private void Load(ref Table<Order> Orders) 
{ 
    if (Orders == null) 
     Orders = this.GetTable<Order>(); 
} 

我試圖做一個通用的一個顯而易見的原因,但是我得到一個「類型'T'必須是引用類型,以便在泛型類型或方法'System.Data.Linq.Table'中使用它作爲參數'TEntity'異常:

private void Load<T>(ref Table<T> TableToLoad) 
{ 
    if (TableToLoad == null) 
     TableToLoad = this.GetTable<T>(); 
} 
+0

你知道Linq2Sql在你訪問GetTable 的時候實際上並沒有加載任何數據嗎?你必須運行一個查詢,然後做一個ToArray()或類似的查詢來實際運行 – 2015-10-30 03:03:16

回答

5

只需將「where T: class」添加到您的方法。

+0

謝謝!非常簡單,但非常重要。 – Tipx 2009-06-06 03:16:05