结合查询

时间:2013-06-12 01:38:02

标签: c# linq tsql linq-to-sql

我正在使用Linq to Sql来获取两个列表而不是将Union与另一个列表一起使用。他们工作正常。但我想知道它是否可以在一个查询中完成,或者两个查询而不是三个查询。

查询

var l = (from t in T_list1
         where t.Date == DateTime.Today 
         select new 
         {   
             oldDate=t.OldDate,
             Name=t.name,
             Email=t.EmailAddress,
             list2TableId=t.l2Id,
             CustomerId=t.customerId
         });


var l2=(from d in T_list2
        from e in l1
        where d.Id == e.list2TableId
        select new
        {                
            Date=d.oldDate,
            CName=d.Name,
            Experience=e.experience,            
        });

list2.Dump();
var l3 = list2.Union(list3).ToList();

我正在看这篇文章,但没有奏效。 Combining 2 Linq queries into 1 感谢您的投入。

1 个答案:

答案 0 :(得分:0)

您可以进行联接而不是2次查询:

         var l = (from t in T_list1
                  join d in T_list2 on t.l2Id equals d.Id
                 where t.Date == DateTime.Today 
                 select new 
                 {
                 oldDate=t.OldDate,
                 Name=t.name,
                 Email=t.EmailAddress,
                 list2TableId=t.l2Id,
                 CustomerId=t.customerId
                 Date=d.oldDate,
                 CName=d.Name
                 Experience=e.experience,
                 });

我没有测试过查询,但它应该向您展示粗略的想法。

看看SQL中的JOIN& Linq获取更多信息。