我有两个对象之间的(几个实际)关系,父对象是用户,子对象是事件。 用户和事件之间定义了四种关系:
_
已修改 _
报告,最后_
负责 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>();
创建关系而不是其他三个关系?
答案 0 :(得分:0)
我认为这是有效的,可以直接将ID分配给实体属性:
return session.CreateCriteria(typeof(Incident))
.Add(Expression.Eq("User_created", UserID))
.List<Incident>();