2013-04-16 2 views
2

두 개의 테이블이 있습니다. 이 테이블 간에는 일대 다 관계가 있습니다. 회사 테이블 및 BankAccount 목록 테이블을 선택하고 싶습니다 (해당 CompanyID에 대해). Linq-to-SQL로 어떻게 할 수 있습니까?Linq에서 Sql으로 여러 테이블 선택

public class Company 
{ 
    // My Fields 
    [Key] 
    public Guid ID { get; set; } 


    public string FullName { get; set; } 

    // My virtual properties FOR relationships(one-to-one,one-to-many etc.). 


    public virtual List<BankAccount> BankAccounts { get; set; } 
} 

public class BankAccount 
{ 

    // My Fields 
    //[ScaffoldColumn(false)] 
    [Key] 
    public Guid ID { get; set; } 

    [ForeignKey("Companies")] 
    public Nullable<Guid> CompanyID { get; set; } 

    public string BankName { get; set; } 




    // My virtual properties FOR relationships(one-to-one,one-to-many etc.). 

    public virtual Company Company { get; set; } 
} 

나는 다음과 같이이 쓸 수 있지만 나는 다음과 같은 결과를 얻을 것이라고 생각 그것을

List<List<BankAccount>> bankaccounts = new List<List<BankAccount>>(); 
foreach (var comp in companyRepository.Companies) 
{ 
     List<BankAccount> banks = new List<BankAccount>(); 
     foreach (var bank in bankRepository.BankAccounts) 
     { 
      if (comp.ID == bank.CompanyID) 
      { 
       banks.Add(bank); 
      } 
     } 
     bankaccounts.Add(banks); 
     banks = new List<BankAccount>(); 
} 
+0

무엇을 시도 했습니까? –

답변

2

를 좋아하지 않았다.

var bankaccounts = companyRepository.Companies.Select(c => c.BankAccounts) 
         .ToList(); 

엔티티 프레임 워크를 사용하는 경우 DB 호출을 최소화하기 위해 'BankAccounts'속성을 eagerload 할 수 있습니다.

희망이 도움이됩니다.

+0

감사합니다, @ shakib. 훌륭합니다. 지금은 잘 작동합니다. –

+0

당신은 오신 것을 환영합니다. 그것이 당신을 위해 작동한다면, 대답을 받아 들일 수있는 것으로 표시 할 수 있습니까? :) – shakib

+0

OK :)) 내가 해냈어. –

관련 문제