所以我在下面有一个LINQ查询:
var data= (from p in _db.P
join t in _db.TP on
p.Id equals t.PId
select
new TPE{
PId= t.PId,
TId= t.Id
}
).ToList();
return data;
但是当我运行它时,它会给我一个错误:
The entity or complex type 'TPE' cannot be constructed in a LINQ to Entities query.
我已经查看了其他正确执行此操作的LINQ查询,但我不知道为什么我的查询无效。有什么见解吗?
答案 0 :(得分:6)
这里最简单的方法是获取匿名类型,然后通过AsEnumerable
在进程中完成剩下的工作:
return (from p in _db.P
join t in _db.TP on p.Id equals t.PId
select new { t.PId, t.Id }).AsEnumerable()
.Select(x => new TPE { PId = x.PId, TId = x.Id })
.ToList();
或所有扩展方法语法:
return _db.P.Join(_db.TP, p => p.Id, t => t.PId,
(p, t) => new { t.PId, t.Id })
.AsEnumerable()
.Select(x => new TPE { PId = x.PId, TId = x.Id })
.ToList();