我正在使用NHibernate修复代码库,我发现不是使用Get或Load来按ID查找实体,而是使用查询。
喜欢:
session.CreateCriteria(typeof(T)).Add(Expression.AllEq(propertyNameValues)).List<T>();
其中propertyNameValues是包含“ID”和id值的IDictionnary。
尝试将其替换为:
session.Get<T>(id);
Nhibernate在我班上找到了一个没有坚持的人。
但显然有一种方法可行,我的google-fu只发现了人们忘记将给定的hbm设置为嵌入式资源或nhibernate配置中的映射程序集的链接。
我尝试了Get(id),Get(typeof(T),id),Get(“ClassName”,id)都抛出相同的错误。
这是请求的映射(谢谢)
<class name="Domain.Customers.Customer, Domain" table="Customer" lazy ="true">
<id name="ID" column="id" access="field.lowercase-underscore" type="int">
<generator class="identity" />
</id>
这是一个类的映射,但它对我的所有权限都是通用的。
感谢任何指针。
答案 0 :(得分:1)
“ID”是否被映射为对象的标识属性?正如马克所说,我们需要看到映射以给出更好的答案。