简体   繁体   English

我想加入两个表,并希望使用linq得到两个表的列

[英]I want to join two tables and want column of both tables in result using linq

I want to join two tables and want column of both tables in result using linq 我想加入两个表,并希望使用linq得到两个表的列

I have something like 我有类似的东西

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

Instead of just tu wabt columns of both t and q 而不只是t w和t和q的列

Use anonymous object to select all columns from both tables: 使用匿名对象从两个表中选择所有列:

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

Or just select both entities in anonymous object: 或者只选择匿名对象中的两个实体:

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

Or even better - use eager loading of details. 甚至更好 - 使用急切加载细节。 Then code will look like: 然后代码看起来像:

var k = Uow.Transactions.GetAllIncluding(t => t.Details);

Using lambda syntax, create anonymous result containing both items: 使用lambda语法,创建包含两个项的匿名结果:

   var joinResult =  Uow.Transactions.GetAllWithReferences()
          .Join(Uow.TransactionDetails.GetAll(), transaction => transaction,
                   details => details, (transaction, details) => new 
                                          { 
                                             Transaction = transaction,
                                             Details = details
                                          });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM