2
Nhibernate ConfORM 캐스케이드에 문제가 있습니다.ConforM Nhibernate OneToMany Cascade
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" />
이 개 실체를 존재 나는 삭제 역할없이 사용자를 삭제할. 모든 대부분의 모든 테스트를 통과했다, 그러나 이것은 폭포 :
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을");).
삭제 된 개체 협회
나는이 문제를 해결하기 위해 어떻게해야
에서 캐스케이드 삭제 삭제 된 개체에 의해 다시 저장됩니다?