【发布时间】:2012-01-25 10:52:29
【问题描述】:
我对 NHibernate 很陌生,所以这可能相当简单,但搜索让我感到困惑。
我有一个AddOnAmount 表如下:
AddOnID | AddOnTypeID | Period | Amount
AddOnTypeID 是一个 FK。这些行对AddOnTypeID 和Period 具有唯一约束。
映射如下所示:
<id name="Id" column="AddOnId" type="long">
<generator class="native" />
</id>
<many-to-one name="AddOnType" column="AddOnTypeID" class="AddOnTypeStatic" not-null="true" />
<property name="Period" />
etc.
AddOnTypeStatic 类/表只有一个Id,这是存储在表中的数值,还有一个描述性的Name。
我正在尝试编写一个查询,该查询将通过 AddOnTypeId 和 Period 进行搜索,因此我可以在尝试从前端添加副本之前验证行的存在(或不存在),但我'我不知道该怎么做,因为AddOnAmountStatic 类有一个子类,而表只有一个 ID。
到目前为止,我已经写了:
public AddOnAmountStatic FindByAddOnTypeAndPeriod(long addOnType, string period)
{
return FindOne(CreateCriteria()
.Add(Restrictions.Eq("AddOnTypeId", addOnType))
.Add(Restrictions.Eq("Period", period))
.SetCacheable(true));
}
这不起作用,因为AddOnTypeId 不是AddOnAmountStatic 的属性。不确定如何在这种情况下访问子类的属性。
我的映射工作正常,因为到目前为止我一直在使用它,没有任何问题。
【问题讨论】:
标签: nhibernate