2014-02-05 65 views
0

我有MainClassChildData獲取外貿信息

我需要得到ChildData給出MainClass

MainClass有一個名爲ChildClassProperty的屬性。 ChildData已獲得ForeignKey至MainClass。我如何獲得使用LINQ的ChildData

至今:

using (var ctx = Csla.Data.ObjectContextManager<DB.Data.Entities>.GetManager(Model.EntitiesDatabase.Name)) 
{ 
    var xxx = from a in ctx.ObjectContext.ChildData where a... 
} 
+0

您使用的EF? – Miller

+0

是使用EF 4.5 –

+0

您需要爲模型中的關係添加導航。並在LINQ中使用INCLUDE()。這可能http://weblogs.asp.net/manavi/archive/2011/05/17/associations-in-ef-4-1-code-first-part-6-many-valued-associations.aspx幫助你 – Miller

回答

0

ChildData有一個外鍵MainClass。這樣做:

實體:

public ChildData 
{ 
    public int Id { get; set; } // primary key 
    public int MainClassId { get; set; } // foreign key 
    public string Data { get; set; } 
} 

public MainClass 
{ 
    public int Id { get; set; } // primary key 
    public string Data { get; set; } 
} 

查詢:

public IQueryable<ChildData> GetChildData(int mainClassId) 

using (var ctx = Csla.Data.ObjectContextManager<DB.Data.Entities>.GetManager(Model.EntitiesDatabase.Name)) 
{ 
    return ctx.ObjectContext.ChildData.Where(x => x.MainClassId == mainClassId); 
} 

或通過傳遞一個完整的MainClass實例:

public IQueryable<ChildData> GetChildData(MainClass mainClass) 

using (var ctx = Csla.Data.ObjectContextManager<DB.Data.Entities>.GetManager(Model.EntitiesDatabase.Name)) 
{ 
    return ctx.ObjectContext.ChildData.Where(x => x.MainClassId == mainClass.Id); 
}