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>これらのサイクルなしで取得する必要があります。

試しましたが、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();
4

2 に答える 2

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

または、他のスタイルのLINQを好む場合(method chainingNumanに感謝します:)):

var lists = m_banksRepository.Banks
             .Select(bank => new ListCreaditInBankView
             {
                 Bank = bank,
                 Creditors = creditorsRepository.GetCreditorBank(bank.BankBranches
                     .Select(x => x.Id).ToList())
             }).ToList();
于 2012-04-20T10:55:20.137 に答える
0

Linq 2 Entity Frameworkを使用している場合は、別の方法を試すことができます。

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

データベースにテーブルとキーを正しく設定していること(または少なくとも生成されたモデルにマッピングしていること)を確認する必要があります。そうしないと、機能しません。

于 2012-04-20T14:00:08.313 に答える