当join语句用于两个查询时给出错误的记录

时间:2013-07-09 09:13:18

标签: asp.net-mvc linq

我正在开发一个ASP.NET MVC应用程序。我有两个查询,我想从这两个查询中获取评论记录。

查询一个

  var poList = (from po in db.PurchaseOrders 
                where po.Id > 0 
                select po into newPO
                select new { Name = newPO.PONo,  Id = newPO.Id });

查询二

var poList2 = (db.Employees.Where(x => x.Id == 25)
              .Select(po => new { Name = po.PONo, Id = po.Id }));

现在我尝试使用以下语句

从以上两个查询中获取常见记录
poList.Join(poList2, a => a.Name, b => b.Name, (a, b) => new { Name = b.Name, Id = b.Id });

但我根本没有获得共同记录。

我必须在声明中做出哪些改变?

2 个答案:

答案 0 :(得分:1)

如果“常用记录”表示具有相同NameId的记录,则可以使用Intersect扩展方法。

var result = poList.Intersect(poList2);

答案 1 :(得分:0)

你试过吗?

poList.Concat(poList2).Distinct().ToList()