我正在使用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 感谢您的投入。
答案 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获取更多信息。