我很喜欢将 Fluent NHibernate 与 AutoMappings 结合使用,但在尝试创建 fluent 配置时,我时不时会遇到此运行时错误:“创建 SessionFactory 时使用了无效或不完整的配置。检查 PotentialReasons 集合和 InnerException 以获取更多详细信息。
现在这可能意味着各种各样的事情,但异常详细信息根本不是很有帮助。有时 NHibernate 无法处理的类会列在 InnerException 中,有时我会收到如下神秘消息:
{"(XmlDocument)(3,6):XML 验证错误:命名空间“urn:nhibernate-mapping-2.2”中的元素“class”在命名空间“urn:nhibernate-mapping-2.2”中的子元素“property”无效。预期的可能元素列表:命名空间“urn:nhibernate-mapping-2.2”中的“meta、subselect、cache、synchronize、comment、tuplizer、id、composite-id”。"}
这并不能真正帮助我追踪错误。有什么方法可以获取 NHibernate 尝试执行的操作的详细日志(即,当前自动映射的类/方法),以便我至少可以识别导致问题的代码部分?
编辑:
此错误的已知原因:
最佳答案
欢迎来到 NHibernate 调试的奇妙世界!我发现缺少有意义的错误消息是使用 NHibernate 最烦人的方面之一。然而,当它工作时非常酷。
这是一个疯狂的猜测,但我看到了这条消息 当我忘记添加“Id”属性时 到我试图映射的类(class)之一。
如果您在阅读错误消息时考虑到这一点,您会发现这是可能遗漏的内容之一。
关于exception-handling - 流畅的 NHibernate : Debugging FluentConfigurationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1909880/