我使用Nhibernate相对较新,但基本的东西已经有效了。
现在我必须映射实现树结构的通用实体。另外,每一个(只有通用或唯一的树)工作正常。
以下是模型的代码:
public class Test<T>
{
public virtual Int64 Id { get; set; }
public string Name { get; set; }
public IList<Test<T>> Children { get; set; }
}
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="PersistencyObjectModel" namespace="PersistencyObjectModel.Domain">
<class name="Test`1[String]">
<id name="Id">
<generator class="guid"/>
</id>
<property name="Name" length="50" not-null="true" unique="true"/>
<set name="Children" table="TEST_TEST_LINK" cascade="all-delete-orphan" >
<key column="ParentId"/>
<many-to-many column="ChildId" class="Test`1[String]"/>
</set>
</class>
</hibernate-mapping>
当我使用该模型时,我收到以下Nhibernate错误:
{"persistent class PersistencyObjectModel.Domain.Test`1[[PersistencyObjectModel.Domain.String,
PersistencyObjectModel]], PersistencyObjectModel not found"}
这个错误意味着什么,我该如何解决?
答案 0 :(得分:0)
更新:试试这个
<hibernate-mapping namespace="PersistencyObjectModel.Domain"
assembly="PersistencyObjectModel"
xmlns="urn:nhibernate-mapping-2.2">
<class name="PersistencyObjectModel.Domain.Test`1[[System.String,
mscorlib, Version=4.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089]]"
table="TestOfString">
<id name="Id">
<generator class="guid.comb"/>
</id>
<property name="Name" length="50" not-null="true" unique="true"/>
<set name="Children" table="TEST_TEST_LINK">
<key column="ParentId" />
<many-to-many column="ChildId"
class="PersistencyObjectModel.Domain.Test`1[[System.String,
mscorlib, Version=4.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089]]"/>
</set>
</class>
</hibernate-mapping>
有些注意事项:
guid
生成器与long
属性一起使用;将其更改为Guid