2012-04-20 13 views
1
var list = new List<ListCreaditInBankView>(); 
var banktemp = m_banksRepository.Banks; 
foreach (Bank bank in banktemp) 
{ 
    var bankbranchtemp = m_banksRepository.BankBranches.Where(x => x.BankId == bank.Id); 
    foreach (BankBranch bankBranch in bankbranchtemp) 
    { 
     var creditortemp = m_creditorsRepository.Creditors.Where(x => x.BankBranchId == bankBranch.Id); 
     list.Add(new ListCreaditInBankView(){Bank = bank, Creditors = creditortemp}); 

    } 

} 

これらのサイクルがなくてもList<ListCreaditInBankView>を取得する必要があります。どのようにlinq要求に変換できますか?

私がしようとしたが、それだけでCreditors

var lists = (from bank in banksTemp 
         let creditorBank = m_creditorsRepository.GetCreditorBank(bank.BankBranches.Select(x => x.Id).ToList()) 
         select new ListCreaditInBankView() {Bank = bank, Creditors = creditorBank}).ToList(); 
+0

エンティティフレームワークまたはLinq2SQL? – walther

+0

@waltherはLinq2SQLのように見える – mattytommo

+0

@mattytommoこのコードからどうやって分かりますか?私はあなたにLinq2EFと同じコードを書くことができます。 – walther

答えて

1

を取得し、次のことを試してみてください。

var lists = (from bank in m_banksRepository.Banks 
      select new ListCreaditInBankView 
      { 
       Bank = bank, 
       Creditors = creditorsRepository.GetCreditorBank(bank.BankBranches 
        .Select(x => x.Id).ToList()) 
      }).ToList(); 

それとも、(method chainingそれは、感謝ニューマン:)と呼ばれています)他のスタイルLINQを好む場合:

var lists = m_banksRepository.Banks 
      .Select(bank => new ListCreaditInBankView 
      { 
       Bank = bank, 
       Creditors = creditorsRepository.GetCreditorBank(bank.BankBranches 
        .Select(x => x.Id).ToList()) 
      }).ToList(); 
+1

他のスタイルはメソッド連鎖と呼ばれています! ;-) – Nauman

+0

ああ!私はいつも、私は更新します、ありがとう! :) – mattytommo

0

Linq 2エンティティフレームワークを使用している場合、アプローチを試すことができます。

http://msdn.microsoft.com/en-us/library/bb896272.aspx

あなたはそれ以外の場合は動作しません、あなたが正しくあなたのデータベース内のテーブルとキーを設定(または生成されたモデルで、少なくともマッピング)したことを、確認する必要があります。

関連する問題