我对Nhibernate ConfORM级联有一些问题。存在两个实体:
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" /> I want to delete User without delete Role. All most all tests have passed, but this one falls: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");)。
已删除对象将通过级联删除关联中的已删除对象重新保存。
我该怎么做才能解决这个问题?
发布于 2010-12-10 10:22:50
清除对DB的更改,提交事务?
https://stackoverflow.com/questions/4407078
复制相似问题