2011-06-21 64 views
0

我已经看到EF中使用代码优先的多对多关系的几个例子,但我遇到了一个我不知道如何解决的情况。实体框架4代码首先,复杂的多对多关系

我的应用程序有三个POCO类,Account,User和Role。每个用户都可以是多个帐户的成员,并且每个用户都有独特的角色。例如,用户A的角色A可以是账户A,角色B可以是账户B.基本上,账户和用户之间有多对多的关系,而且这些关系中的每一个还具有分配给每个账户的角色 - 用户组合。

在我目前的,非代码优先的设置。我有一个有用户ID,帐户ID和角色ID的表。

有没有办法使用代码优先做到这一点?

回答

1

是的,你可以用CodeFirst来做到这一点,你将需要一个额外的类(实体)来表示这个关系表。

其中您的用户将拥有一组具有角色和帐户的帐户成员资格。

User 
--- has a collection of AccountMemberShips 

AccountMemberShip 
--- has a Role 
--- has an Account 
--- has a User 

Account 
--- has a collection of AccountMemberShips 

Role 
--- has a collection of AccountMemberShips 
+0

谢谢,我不知道为什么我没有想到将它定义为一个单独的类。 –

+0

只有没有有效载荷的关系(除表b的id以外的附加信息)可以在没有额外类的情况下建模。 –

相关问题