在我的数据库模式中,我有一个用户基表,加入了用于特定用户类别的各种其他表。
我有一个像这样的EF查询...
Dim query = From u In DBContext.Users
Join a In DBContext.Advertiser On u.UserID Equals a.UserID
这会创建一个匿名类型的IQueryable,包括包含实体的键'u'和'a'。
我希望能够做到的是,以某种方式改变这将返回一个强类型的IQueryable,但我不知道该怎么做。
我尝试过创建一个类似的课程......
Class MyAdvertiser
Public u As User
Public a As Advertiser
End Class
然后像这样声明查询......
Dim query As IQueryable(Of MyAdvertiser) = ...
但是它告诉我它无法转换为MyAdvertiser,因为匿名类型不是从MyAdvertiser派生的。
我可能错过了一些非常明显的东西。我在EntityFramework和linq上还是比较新的。
答案 0 :(得分:1)
您只需要使用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 }