两个FK作为NHibernate映射中的一个PK?

时间:2018-11-22 07:24:27

标签: c# nhibernate hibernate-mapping

我的数据库看起来像这样

 Role                      Role_AppUser              AppUser
 -------------             -------------             -------------
 |Id         | <-PK        |Id         | <-FK        |UserId     | <-PK
 |Name       |             |UserId     | <-FK        |PreName    |
 |Description|             |xy         |             |SurName    |        
 -------------             -------------             -------------

现在,我希望Role_Appuser表的这2个FK成为组合的PK。如何使用NHibernate映射做到这一点?我正在使用按代码映射。

谢谢。

1 个答案:

答案 0 :(得分:0)

在映射中,您可以使用CompositeId:

public class Role_AppUserMap : ClassMap<Role_AppUser>
{
   public Role_AppUserMap()
   {
       Table("Role_AppUser")
       CompositeId()
         .KeyProperty(x=>x.RoleId, "Id")
         .KeyProperty(x=>x.UserId, "UserId");
   }
}