2009-09-16 69 views
1

我有下面的代码,这是为了给特定的功能,但它不是:S功能NHibernate HasManyToMany()保存/更新问题

无论如何,这里是我的问题:

http://img525.imageshack.us/img525/1315/diagramp.png

这里的映射代码:

public class UsersMap : ClassMap<User> 
{ 
    public UsersMap() 
    { 

     this.Table("Users"); 
     Id(x => x.UserName).GeneratedBy.Assigned(); 

     Map(x => x.FirstName); 
     Map(x => x.LastName); 
     Map(x => x.Password); 
     Map(x =>x.EMail); 
     Map(x => x.Title); 
     Map(x => x.Division); 
     Map(x => x.Status); 

     HasManyToMany(x => x.Roles) 
      .Table("UserInRoles").ParentKeyColumn("Username") 
      .ChildKeyColumn("RoleId").AsBag().Inverse(); 


    } 
} 

public class RolesMap : ClassMap<Role> 
{ 

    public RolesMap() 
    { 
     this.Table("Roles"); 
     Id(x => x.ID).GeneratedBy.Assigned(); 
     Map(x => x.RoleName); 

     HasManyToMany(x => x.Users) 
      .Table("UserInRoles").ParentKeyColumn("RoleId") 
      .ChildKeyColumn("Username").AsBag().Cascade.All(); 

    } 


} 

试图(为分配特定的用户角色)的用户名添加到表UserInRoles但是当我的问题是角色ID(如果它已经存在,它将从其相应的行中移除并分配给新行,有什么想法?

+0

对于图片很小,我并没有注意到哪些信息:S – Saeedouv 2009-09-16 10:29:54

回答

0

您是否看上过制作您的ManyToMany work by convention

链接示例实际上是指角色和几乎你在这里要做的。

+0

谢谢,但是在进行一些更改(如发布的链接)后,它似乎也是同样的问题。 – Saeedouv 2009-09-16 11:22:04