2010-10-31 99 views
13

我正在使用實體框架代碼第一個CTP4。實體框架代碼首先延遲加載非導航屬性

是否有可能延遲加載非導航屬性像您可以在NH 3

一個常見的例子是具有包含一個二進制列的表。我只想在代碼中明確請求該屬性時檢索此列的數據,例如image.ImageData

感謝 本

+1

只是一個猜測。有一個表分裂的方法,也許它會幫助:http://thedatafarm.com/blog/data-access/ef-table-splitting-ndash-the-opposite-of-entity-splitting/ – Devart 2010-11-01 12:42:32

+0

是的,這是我們在添加對延遲加載屬性的支持之前,用於處理NH。看起來,EF代碼首先是一樣的。 – 2010-11-05 12:18:13

回答

2
  1. 投票here
  2. 投票here
  3. this
  4. 醜陋的解決方法:

    public static void Main() 
    { 
        IEnumerable<MyTable> table; 
        using (Entities context = new Entities()) 
        { 
        var buffer = 
         context.MyTable 
         .Select(myTable => new 
         { 
         Id = myTable.Id, 
         OtherColumn = myTable.OtherColumn 
         }) 
         .ToArray(); 
    
        table = buffer 
         .Select(t => new MyTable 
         { 
         Id = t.Id, 
         OtherColumn = t.OtherColumn 
         }); 
        } 
    } 
    

這不會選擇其餘的字段。