比如 a类的一个属性是b类 双方无论是one-to-one 还是many-to-one 然后 unique="true"的情况下,都是先insert b类
但这样的情况下 有些逻辑讲不通 比如一个人的是一张表 名字是一张表 设计模型是肯定是一个人的一个属性是name 然后db中,肯定是人表是主键表,名字表是外键表 例子可能不恰当 假设用人可能没有名字。这样的话 先插入b类,就会出现一个外键约束不符合的情况。不知道怎么解决?先谢谢了

解决方案 »

  1.   

    先插主键返回主键主键ID
    这在 Nhibernate有封装好的基类方法 ,插入成功 返回ID,插入失败 返回-1根据返回主键主键ID再向外键表内插数据
      

  2.   

    有外键。先主表再从表
    NHibernate 关系
      

  3.   

    先谢谢了 但是这种情况下 我需要的是第一种模型 也就是Employee的主键就是外键 但这种情况下您看您的模型结构和测试代码
    Person person = new Person();
    person.Name = "newPerson";
    Employee employee = new Employee();
    employee.Job = "newJob";
    person.Employee = employee;
    employee.Person = person;session.Save(person);
    person和employee是相互有依赖的
    我想 只在person中有employee属性 但employee中没有person属性
    不知道可以实现么?
      

  4.   

    你这种是many-to-many关系 了,没能这样处理
      

  5.   

    不是吧 怎么会是多对多呢 要说one to many倒有可能,多对多怎么看也不像吧