我首先使用代码构建数据库。我发现使用投影到具体类型的查询是迄今为止最快的方法,比使用Include
语句更快。然而,我遇到了以下问题:
dim records=(From record in db.SomeDbSet
Where record.UserID=userID
Select New UserSpecificRecord With
{ .Name=record.User.Name
.Tasks=record.Tasks
}).ToList
执行.Tasks = part时出现不同的错误,从无效的强制转换异常到Enity Framework不支持此类查询的消息,具体取决于我创建UserSpecificRecord类的Tasks属性的集合类型
当我将代码更改为:
时 Dim records= (From record in db.SomeDbSet
Where record.UserID=userID
Select New With
{ .Name=record.User.Name
.Tasks=record.Tasks
}).ToList
dim userRecords=(From record in records
Select New UserSpecificRecord With
{ .Name=record.Name
.Tasks=record.Tasks
}).ToList
:我投射到一个匿名类型然后构建它所有工作的具体类型。我非常希望能够直接投射到具体类型。可以吗?
答案 0 :(得分:1)
您无法投放到“实体”(您的UserSpecificRecord
也是映射?名称似乎如此)。
这不是关于'具体课程'。
请参阅此回答The entity cannot be constructed in a LINQ to Entities query