0

2 つのテーブルを結合し、linq を使用して両方のテーブルの列を結果に表示したい

私は次のようなものを持っています

var k = (from t in Uow.Transactions.GetAllWithReferences()
         join q in Uow.TransactionDetails.GetAll() on t.TransactionId equals q.TransactionId
         select t)

t と q の両方の tu wabt 列だけではなく

4

2 に答える 2

1

匿名オブジェクトを使用して、両方のテーブルからすべての列を選択します。

var k = from t in Uow.Transactions.GetAllWithReferences()
        join q in Uow.TransactionDetails.GetAll() 
             on t.TransactionId equals q.TransactionId
        select new { t.Column1, t.Column2, q.Colum3 };

または、匿名オブジェクトで両方のエンティティを選択するだけです。

var k = from t in Uow.Transactions.GetAllWithReferences()
        join q in Uow.TransactionDetails.GetAll() 
             on t.TransactionId equals q.TransactionId
        select new { Transaction = t, Details = q };

またはさらに良い -詳細の熱心な読み込みを使用します。次に、コードは次のようになります。

var k = Uow.Transactions.GetAllIncluding(t => t.Details);
于 2013-03-18T09:21:04.667 に答える
1

ラムダ構文を使用して、両方の項目を含む匿名の結果を作成します。

   var joinResult =  Uow.Transactions.GetAllWithReferences()
          .Join(Uow.TransactionDetails.GetAll(), transaction => transaction,
                   details => details, (transaction, details) => new 
                                          { 
                                             Transaction = transaction,
                                             Details = details
                                          });
于 2013-03-18T09:22:40.457 に答える