2011-07-12 16 views
0

用戶類刪除一對多的關係<p>我的問題是:</p> <ul> <li>我想刪除特定用戶的所有角色? [由danyolgiax回答]</li> <li>獲取的用戶角色</li> </ul> <p>任何一個可以指導我..</p>

public class User 
    { 
     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 class Role 
    { 

     public virtual int? RoleID { get; set; } 

     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>(); 
     } 
    } 

用戶映射類

public class UserMap : ClassMap<User> 
    { 
     public UserMap() 
     { 
      Table("tblUsers"); 

      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.LastLogin).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() 
               //.AsSet() 
               //.Inverse() 
               .Not.LazyLoad(); 


     } 
    } 

RoleMap類

public class RoleMap : ClassMap<Role> 
    { 
     public RoleMap() 
     { 
      Table("tblRoles"); 
      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.All() 
       .Inverse() 
       .Not.LazyLoad(); 
     } 
    } 
上的許多

回答

3

嘗試User(不是Role.Inverse()然後:

user.Roles.Clear(); 
yourNhSession.SaveOrUpdate(user); 

更新

User user= yourNhSession.Get<User>(userId); 

IList<Role> role= user.Roles; 
+0

thnx對你的支持和幫助 – Xulfee

+0

我有另外一個查詢請指導我。 – Xulfee

+0

我更新了我的帖子! – danyolgiax

相關問題