【发布时间】:2013-03-31 15:08:59
【问题描述】:
我首先使用代码构建了一个数据库。我发现使用投影到具体类型进行查询是迄今为止最快的方法,比使用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= 部分时,我得到不同的错误,从无效的强制转换异常到 Enity 框架不支持这种查询的消息,具体取决于集合的类型,我创建了 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
即:我投影到一个匿名类型,然后构建它所有工作的具体类型。不过,我非常希望能够直接投影到具体类型。能做到吗?
【问题讨论】: