首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ConfORM OneToMany级联

ConfORM OneToMany级联
EN

Stack Overflow用户
提问于 2010-12-10 08:51:48
回答 1查看 518关注 0票数 2

我对Nhibernate ConfORM级联有一些问题。存在两个实体:

代码语言:javascript
复制
 public class User : BaseEntity
{        
    public User(Role role)
    {            
        this.Role = role;          
    }

    protected User()
    {
    }

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

和作用:

代码语言:javascript
复制
public class Role : BaseEntity
{
    public Role()
    {
        this.Users = new HashedSet<User>();
    }      
    public virtual ISet<User> Users { get; protected set; }
}

级联设置:

代码语言:javascript
复制
 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);

这种自动操作给出:

代码语言:javascript
复制
<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" />
代码语言:javascript
复制
                                            I want to delete User without delete Role. All most all tests have passed, but this one falls:
代码语言:javascript
复制
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");)。

已删除对象将通过级联删除关联中的已删除对象重新保存。

我该怎么做才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-10 10:22:50

清除对DB的更改,提交事务?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4407078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档