LINQ查询无法将数据选择到自定义类对象中

Jay*_*Sun 1 linq asp.net

所以我在下面有一个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;
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,它给了我一个错误:

The entity or complex type 'TPE' cannot be constructed in a LINQ to Entities query. 
Run Code Online (Sandbox Code Playgroud)

我已经查看了其他正确执行此操作的LINQ查询,但我不知道为什么我的查询无效.任何见解?

Jon*_*eet 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();
Run Code Online (Sandbox Code Playgroud)

或者所有扩展方法语法:

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();
Run Code Online (Sandbox Code Playgroud)