2013-03-27 59 views
0

我有一個類:實體框架代碼優先延遲加載不包括( 「A」)方法

class Client 
{ 
    public string Name {get;set;} 

    public virtual A{get;set;} 

    public virtual B{get;set;} 
} 

我填AB性質類似:

public Client GetById(Guid id) 
{ 
    using (DataContext context = new DataContext()) 
    { 
     context.Configuration.LazyLoadingEnabled = true; 
     var query = context.Clients.Include("A"); 
     query = query.Include("B"); 
     return query.FirstOrDefault(r => r.Id == id); 
    } 
} 

從上下文繼承System.Data.Entity.DbContext

如果我要重命名AB我必須更改此Include("A")男人ually。沒有好...

請讓我知道如果有另一種方便的方式如何填補這個屬性?

在此先感謝。

回答

3
context.Clients.Include(x => x.A).Include(x => x.B) 

至少重命名會被intellisense這樣拾取。

+0

我只有重載字符串參數。上下文繼承自:System.Data.Entity.DbContext類。 – Sergejs 2013-03-27 12:38:34

+3

@Sergejs lambda重載(至少用於EF 5.0)是System.Data.Entity命名空間中'DbExtensions'類中的擴展方法。 – 2013-03-27 12:40:21

+0

這就是它,只需使用System.Data.Entity添加;萬分感謝!!! – Sergejs 2013-03-27 12:42:24