我有两张桌子。我需要将其加入,如果在第二个表中有多个相同的行candidateId
,那么我只需要获取最后一行(id = 153
在我的示例中为)
using (DbManager manager = new DbManager())
{
var data = (from c in manager.Table1.AsNoTracking()
join cm in manager.Table2.AsNoTracking()
on c.CandidateId equals cm.CandidateId
where cm.Id == manager.Table2.Last(z => z.CandidateId == cm.CandidateId).Id
select new
{
c,
cm.ManagerINN
}).ToList();
}
我的代码返回错误:
System.NotSupportedException:'实体的LINQ无法识别方法'StaffManagement.Models.DB.CandidateManager Last [CandidateManager](System.Linq.IQueryable 1[StaffManagement.Models.DB.CandidateManager], System.Linq.Expressions.Expression
1 [System.Func`2 [StaffManagement.Models.DB.CandidateManager,System.Boolean ]])'方法,并且该方法无法转换为商店表达式。
LINQ to Entities(和SQL)不支持所有LINQ方法!
更换
manager.Table2.Last(...).id
与
manager.Table2.OrderByDescending(...).FirstOrDefault()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句