2010-01-24 48 views
3

我的SQL 2008表,我們稱之爲tblDocument,具有名稱,創建者,sequenceNumber等列,後面是包含文檔本身的「DocumentContent」varbinary(max)列。LINQ to SQL的二進制列的最佳方法

我正在使用LINQ to SQL。如果我想在接口中顯示tblDocument的行,而不是通過電線爲每一行檢索一個多兆字節的二進制文件,那麼完成該操作的最佳方法是什麼?有沒有辦法做到這一點,以便文件流不會被訪問,直到我從屬性讀取,或類似的東西?

謝謝!

回答

2

您可以使用Linq創建一個不包含DocumentContent列的匿名對象。就像這樣:

var list = from item in db.tblDocument 
    select new 
    { 
    item.ID, 
    item.name, 
    item.creator, 
    item.sequenceNumber 
    }; 

再後來使用的ID,當你需要它來檢索只是DocumentContent:

var content = db.tblDocument 
    .Where(x => x.ID == MyRowID) 
    .Select(x => x.DocumentContent).Single(); 
+0

謝謝,這是有益的,但在我的情況下,我從一個公共函數返回這些記錄所以我沒有豪華的匿名類型。 – 2010-01-24 23:54:58