Nhibernate:在许多表中保存数据

时间:2013-03-08 07:30:11

标签: hibernate nhibernate

我有两个表,即Dept和Emp。他们的Hbm文件是:    

<id name="DeptId">
    <column name="DeptId" />
<generator class="increment" />
</id>

<property name="DeptName" column="DeptName" length="50" />

    <bag name="Emp5" inverse="true"  cascade="save-update">
        <key>
            <column name="RefDeptId" />
        </key>
        <one-to-many class="EmpModel" />
    </bag>

</class>

<id name="EmpId">
    <column name="EmpId" />
    <generator class="increment" />
</id>

<property name="EmpName" column="EmpName" length="50" />

<property name="RefDeptId"  column="RefDeptId"/>


    <many-to-one name="objEmpDeptId1" class="DeptModel"   cascade="save-update" column="RefDeptId" />
</class>

在代码方面,我正在填充这样的对象:

DeptModel dept = new DeptModel();
dept.DeptName = "sap";
dept.DeptId = 5;

List<EmpModel> lst = new List<EmpModel>();
EmpModel emp1 = new EmpModel();
emp1.EmpName = "Rajesh";

EmpModel emp2 = new EmpModel();
emp2.EmpName = "shyam";

lst.Add(emp1);
lst.Add(emp2);
dept.Emp5 = lst;

session.Save(a_dept );

当我尝试在Nhibernate中保存此对象时,它无法按预期工作。 我希望它首先在dept中存储值,然后在emp中添加两行,并生成dept的自动增量值。可能吗 ? 当我检查sql server的探查器时,它生成的查询使用RefDeptid为0而不是自动增量值为dept且仅为1名员工。  可能吗 ? 我怎么能做到这一点?

0 个答案:

没有答案