0
我有一个有趣的问题发生在我身上,我不知道什么即时通讯做错了,即时通讯与MVC 3使用流利nHibernate,我得到了用户,角色和UsersinRole表为许多很多关系。流利的nHibernate问题在许多到多映射
用户映射:
Id(user => user.UserID).GeneratedBy.Guid();
Map(user => user.UserName).Not.Nullable();
Map(user => user.Password).Not.Nullable();
Map(user => user.FullName).Not.Nullable();
Map(user => user.Email).Not.Nullable();
Map(user => user.IsActive).Not.Nullable();
Map(user => user.CreationDate).Not.Nullable();
HasManyToMany<Role>(x => x.Roles).Table("tblUserInRoles")
.ParentKeyColumn("UserID")
.ChildKeyColumn("RoleID")
.Cascade.All()
.Not.LazyLoad();
角色映射:
Id(role => role.RoleID).GeneratedBy.Identity();
Map(role => role.RoleName).Not.Nullable();
Map(role => role.IsActive).Not.Nullable();
Map(role => role.Description).Not.Nullable();
HasManyToMany<User>(x => x.Users)
.Table("tblUserInRoles")
.ParentKeyColumn("RoleID")
.ChildKeyColumn("UserID")
.Cascade.SaveUpdate()
.Inverse()
.Not.LazyLoad();
用户实体:
public virtual Guid UserID { get; set; }
public virtual string UserName { get; set; }
public virtual string Password { get; set; }
public virtual string FullName { get; set; }
public virtual string Email { get; set; }
public virtual TimeSpan LastLogin { get; set; }
public virtual bool IsActive { get; set; }
public virtual DateTime CreationDate { get; set; }
public virtual IList<Role> Roles { get; set; }
public User()
{
Roles = new List<Role>();
}
public virtual void AddRoles(Role role)
{
role.Users.Add(this);
Roles.Add(role);
}
角色实体:
public virtual string RoleName { get; set; }
public virtual bool IsActive { get; set; }
public virtual string Description { get; set; }
public virtual IList<User> Users { get; set; }
public virtual IList<Role> Roles { get; set; }
public Role()
{
Users = new List<User>();
}
现在的问题是,当我删除任何角色时,它会删除与UserInRole表中的用户关联的角色,以及删除与我删除的角色相关的所有用户。同样的事情发生在反向如果我删除用户。
是否有人知道这是什么问题?
我犯了一些错误,现在工作正常,这个[链接](http://stackoverflow.com/questions/1321416/fluent-nhibernate-hasmanytomany-mapping-problem)帮助我。 – Saad