2014-02-05 4 views
0

나는 MainClassChildData입니다.ForeignKey의 데이터를 입력하십시오.

나는 MainClass이 주어진 ChildData이 필요합니다.

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

ChildDataMainClass에 외부 키를 가지고있다.

엔티티 :

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); 
}