如何使用Linq to Entities投影导航属性?

时间:2013-03-31 15:08:59

标签: entity-framework querying

我首先使用代码构建数据库。我发现使用投影到具体类型的查询是迄今为止最快的方法,比使用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

:我投射到一个匿名类型然后构建它所有工作的具体类型。我非常希望能够直接投射到具体类型。可以吗?

1 个答案:

答案 0 :(得分:1)

您无法投放到“实体”(您的UserSpecificRecord也是映射?名称似乎如此)。
这不是关于'具体课程'。

请参阅此回答The entity cannot be constructed in a LINQ to Entities query