Entity Framework - 如何 return 强类型 IQueryable 与连接的实体

Entity Framework - How to return strongly typed IQueryable with joined entities

在我的数据库架构中,我有一个用户群 table,加入了用于特定类别用户的各种其他 table。

我有一个像这样的 EF 查询...

Dim query = From u In DBContext.Users
            Join a In DBContext.Advertiser On u.UserID Equals a.UserID

这将创建一个匿名类型的 IQueryable,包括包含实体的键 'u' 和 'a'。

我希望能够以某种方式将其更改为 return 强类型 IQueryable,但我不确定该怎么做。

我试过的是创建一个像这样的 class...

Class MyAdvertiser
    Public u As User
    Public a As Advertiser
End Class

然后像这样声明查询...

Dim query As IQueryable(Of MyAdvertiser) = ...

但它告诉我它不能转换为 MyAdvertiser,因为匿名类型不是从 MyAdvertiser 派生的。

我可能漏掉了一些非常明显的东西。我在 EntityFramework 和 linq 方面还比较陌生。

您只需要使用 Linq 进行项目 Select。只需在查询末尾添加即可。例如:

Dim query = From u In DBContext.Users
            Join a In DBContext.Advertiser On u.UserID Equals a.UserID
            Select New MyAdvertiser With { .u = u, .a = a }