C# 一至五月份和非专利药:“;关联引用未映射类“;

C# 一至五月份和非专利药:“;关联引用未映射类“;,c#,nhibernate,nhibernate-mapping,C#,Nhibernate,Nhibernate Mapping,TL;DR版本:在构建SessionFactory时,下面的代码给了我一个“关联引用未映射类”异常。应该在代码中更改什么来修复它 尽管Ayende@Rahien不建议在中使用泛型类的映射,但我还是尝试了一下。我采用了他提到的方法。首先是正在工作的位: 相应的泛型类如下所示: public class Review:BaseEntity其中T:ireview { 公共虚拟整数评级{get;set;} 公共虚拟T主题{get;set;} } 这是可行的,我可以加载这些Review实体,并在我

TL;DR版本:在构建SessionFactory时,下面的代码给了我一个“关联引用未映射类”异常。应该在代码中更改什么来修复它


尽管Ayende@Rahien不建议在中使用泛型类的映射,但我还是尝试了一下。我采用了他提到的方法。首先是正在工作的位:


相应的泛型类如下所示:

public class Review:BaseEntity其中T:ireview
{
公共虚拟整数评级{get;set;}
公共虚拟T主题{get;set;}
}
这是可行的,我可以加载这些
Review
实体,并在我的MVC视图中显示它们,没有问题。有趣的是,当我在控制器和视图中使用它时,我的
主题将具有正确的类型


然而,当试图在我的Person类上映射一组审阅项时,事情开始崩溃。以下是我当前使用的映射:


对于该(缩写)类:

公共类人物:BaseEntity,可查看
{
/*缩写*/
公共虚拟IList评论{get;set;}
}
在构建SessionFactory时,这将以异常结束:

关联引用未映射的类:…..在此处插入一对多.class


那么问题是:这里有什么问题?这可能吗?我应该放弃映射通用实体吗?

通过代码映射为我生成了以下内容:


...
...

因此,请尝试使用完全限定名。

泛型类型上的Version/Culture/PublicKeyToken位实际上就是密钥。感谢大家花时间给出这个答案!