NHibernate.DuplicateMappingException 错误导致NUnit测试时无法自动生成数据库表的问题
NUnit测试时错误提示:
MainTest.MainInit.Init:
NHibernate.MappingException : Could not compile the mapping document: Com.Res.DishEditor.Domain.Dish.hbm.xml
----> NHibernate.DuplicateMappingException : Duplicate class/entity mapping Com.Res.DishEditor.Domain.Dish
原因:
我在Domain中有一个Dish.cs类,其中定义了一个字段名为Index用来表示排序,结果可能是这个Index跟NHibernate或者.Net4底层代码有冲突,改了名字如Index11,或者SeqNo后能够顺利生成数据库表文件了。
附:其它一些可能引发此问题的原因
1、hibernate.cfg.xml配置文件错误:<mapping assembly="NHibernateSample.Domain"/>
2、Product.hbm.xml映射文件生成操作应为:嵌入的资源
3、Product.hbm.xml映射文件命名错了。少了.hbm