2010-12-10 9 views
2

Nhibernate ConfORMカスケードに問題があります。ConforM Nhibernate OneToManyカスケード

public class User : BaseEntity 
{   
    public User(Role role) 
    {    
     this.Role = role;   
    } 

    protected User() 
    { 
    } 

    public virtual Role Role { get; protected set; } 
} 

と役割:

public class Role : BaseEntity 
{ 
    public Role() 
    { 
     this.Users = new HashedSet<User>(); 
    }  
    public virtual ISet<User> Users { get; protected set; } 
} 

カスケード設定:

var relationalMapper = new ObjectRelationalMapper(); 
     relationalMapper.TablePerConcreteClass(domainEntities); 
     relationalMapper.Patterns.PoidStrategies.Add(new NativePoidPattern()); 
     relationalMapper.Cascade<User, Role>(Cascade.Persist); 
     relationalMapper.Cascade<Role, User>(Cascade.Persist); 

この自動マッピングを提供します:

<class name="User" table="Users"> 
<id name="Id" type="Int32"> 
    <generator class="native" /> 
</id> 
<many-to-one name="Role" column="RoleId" cascade="save-update, persist" /> 

2つのエンティティとして存在し 私は、削除せずに役割のユーザーを削除したいです。 すべてのほとんどすべてのテストには合格したが、これは落ちる:

this.role = new Role(); 
     this.user = new User(this.role) { Login = "memoryUser", Password = "memoryPass" }.SetIdTo(0); 
     role.Users.Add(user); 
     this.session.SaveOrUpdate(this.user); 
     repo.Delete(this.user); 
     var u = repo.GetByName("memoryUser"); 

     u.Should().Be.Null(); 

エラーメッセージを: 私は削除されたユーザーを取得しようとすると、それが表示されます(VAR U = repo.GetByName( "memoryUserを");)。オブジェクトがカスケードによって再保存されます削除

団体

から削除されたオブジェクトを削除し、私はこの問題を解決するために何をすべき?

答えて

2

DBへの変更、トランザクションのコミット?

関連する問題