我有幾個表和視圖:LINQ到實體:許多一對多加入表和視圖
表:
- aspnet_Roles
(與角色ID &其他列)
- Status
(與StatusId其他&列)
- RoleStatus
(與角色ID和StatusId和關係)
當我創建的LINQ到實體EDMX文件,它會創建2個實體在一Status
列表屬性和aspnet_Roles
列表Status
。
到目前爲止確定。
但現在我有一個StatusId
列的視圖。
我想要的是創建一個LINQ查詢,在該視圖和aspnet_Roles
表之間加入一個連接,在結果集中添加RoleName
列。
在SQL它會是這樣的:
Select a.*, aspnet_Roles.RoleName From SearchView a
INNER JOIN RoleStatus ON a.StatusId = RoleStatus.StatusId
INNER JOIN aspnet_Roles ON RoleStatus.RoleId = aspnet_Roles.RoleId
但我找不到怎麼辦,在LINQ到實體。 問題是我從來沒有訪問到RoleId
或StatusId
,因爲這些字段被aspnet_Roles
和Status
列表屬性「替換」。
所以我得到一個LINQ這樣的:
from avis in ctx.SearchView
join joinedRoles in ctx.aspnet_Roles
on avis.StatusId equals joinedRoles.Status. (and then what ??)
當狀態是我無法找到匹配StatusId
沒有一個列表。
我想我做錯了事,但我不知道在哪裏。
哼,看起來EF4真的很酷,但我不能。 是視圖被映射(ctx.SearchView)。 – 2010-06-15 14:53:16
您是否嘗試過使用SearchView.StatusId作爲導航屬性(例如SearchView.Status?)。 – 2010-06-15 15:39:46