0

我正在使用 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();

我正在看这篇文章,但没有工作。将 2 个 Linq 查询合并为 1 个 感谢您的输入。

4

1 回答 1

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 和 Linq 中的 JOIN 以获取更多信息。

于 2013-06-12T01:45:24.063 回答