nHibernate,如何查询具有多个关系的父对象

时间:2009-07-17 11:52:09

标签: c# database nhibernate

我有两个对象之间的(几个实际)关系,父对象是用户,子对象是事件用户事件之间定义了四种关系:

  1. 事件用户{/ 1>} / LI>
  2. 修改了突发事件
  3. 用户_已修改
  4. 用户_报告,最后
  5. 用户_负责
  6. Incident 的所有这四个属性都引用了 User 对象。在映射中像这样:

    _

    我想编写一个nHibernate表达式来获取特定用户创建的所有事件,但我不知道如何编写这个表达式... 这是我到目前为止所得到的:

    <many-to-one name="User_created" class="User, WebbData" fetch="select">
        <column name="created_by" not-null="true" />
    </many-to-one>
    <many-to-one name="User_modified" class="User, WebbData" fetch="select">
            <column name="modified_by" not-null="false" />
    </many-to-one>
    <many-to-one name="User_reported" class="User, WebbData" fetch="select">
            <column name="reported_by" not-null="true" />
    </many-to-one>
    <many-to-one name="User_responsible" class="User, WebbData" fetch="select">
        <column name="responsible" not-null="false" />
    </many-to-one>
    

    但是我怎么告诉nHibernate它应该使用用户 return session.CreateCriteria(typeof(Incident)) .CreateCriteria("User") .Add(Expression.Eq("Id", UserID)) .List<Incident>(); 创建关系而不是其他三个关系?

1 个答案:

答案 0 :(得分:0)

我认为这是有效的,可以直接将ID分配给实体属性:

 return session.CreateCriteria(typeof(Incident))
     .Add(Expression.Eq("User_created", UserID))
     .List<Incident>();