簡體   English   中英

實體框架 4:將多個關聯表映射到實體

[英]Entity Framework 4: Mapping several assocation tables to entities

我對實體框架和 ORM 有點陌生。 我有一個類似這樣的簡單數據庫模式。

User:
   Id
   Name

Group:
   Id
   Name

Role:
   Id
   Name

組和用戶之間存在多對多。 此外,用戶和角色之間存在多對多。 但是,角色是每組的。 所以我們可以有以下內容:

用戶 A 屬於組 1,具有角色 a、b、c,屬於組 2,但具有角色 d、e、f。

所以我們有一些像這樣的關聯表:

UserRoles:
   UserId -> User.Id
   RoleId -> Role.Id

UserGroups
   UserId -> User.Id
   GroupId -> Group.Id

GroupRoles:
   GroupId -> Group.Id
   RoleId -> Role.Id

因此,在我的實體中,我想要一個角色實體、一個具有角色集合的用戶實體和一個具有用戶集合和角色集合的組實體。

當我加載一個組時,我只想加載該組中的用戶以及該組的用戶角色。

所以我的問題:在上面的例子中。 如何做到這一點,當我加載第 1 組時,我想看到用戶 A 的角色 a、b、c 而不是角色 d、e、f。

謝謝,JR

您需要調用 Group.User.Roles 之類的東西來獲取用戶在組中所屬的所有角色。 就像是:

var group1 = objectContext.Groups.Where(x => x.GroupId == 1);
var userARoles = group1.Users.Where(x => x.UserId == "A").Roles;

這對你有幫助嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM