我想在 NHibernate 中使用一些预定义的查找,而不需要对数据库进行循环。
基本上我想要这样的代码:
public class Countries
{
static Countries() {
Australia = new Country
{
Id = 14,
Description = "Australia"
}
}
public static Country Austrlia { get; protected set }
}
然后编写此代码片段:
address.Country = Countries.Australia;// Snippet1
if (address.Country == Countries.Australia) { // Snippet2
// Do something
}
所以我确实重写了 Equals、GetHashCode 甚至重载运算符 == 和 != 用于 Country 类查找。
仅当具有给定 ID 的国家/地区尚未加载到内存中时,Snippet1 才有效。否则它会抛出 NonUniqueObjectException 说具有给定 Id 的对象已经在内存中。
为了解决这个问题,我必须驱逐加载的国家,然后分配查找值。这感觉不对,我不确定当再次执行国家/地区查询查询时会发生什么。
所以问题是:如何在 NHibernate 中维护静态查找类?
谢谢,德米特里。