gpt4 book ai didi

nHibernate:无法找到持久性

转载 作者:行者123 更新时间:2023-12-03 16:22:31 24 4
gpt4 key购买 nike

运行 VS2003,nHB 3.0.0.3001,尝试通过 Gallio 3.2 运行单元测试。代码来自“nHibernate 之夏”的第一届 session 。尝试运行测试时出现以下错误。

NHibernate.HibernateException: Unable to locate persister: DataTransfer.Customer
TargetSite: Void OnLoad(NHibernate.Event.LoadEvent, NHibernate.Event.LoadType)
HelpLink: null
at NHibernate.Event.Default.DefaultLoadEventListener.OnLoad(LoadEvent event, LoadType loadType)
at NHibernate.Impl.SessionImpl.FireLoad(LoadEvent event, LoadType loadType)
at NHibernate.Impl.SessionImpl.Get(String entityName, Object id)
at NHibernate.Impl.SessionImpl.Get(Type entityClass, Object id)
at NHibernate.Impl.SessionImpl.Get[T](Object id)
at DataAccessLayer.NhibernateDataProvider.GetCustomerById(Int32 customerId)

我非常未受教育的猜测是看不到 Customer 类。但是单元测试和数据访问层都引用了包含 Customer 类的 DataTransfer 程序集。 Customer 类是公共(public)的,所有属性都是公共(public)虚拟的。

nHB 配置文件在目录中,客户映射文件是嵌入式资源。似乎失败了
线:
return session.Get<Customer>(customerId);

最佳答案

  • 确保您的映射文件名为 *.hbm.xml
  • 确保将其设置为嵌入式资源。
  • 如果这些失败,请调试,当它失败时,捕获异常并查看 InnerException - NHibernate 隐藏了奇妙的错误消息。

  • 希望这些事情有所帮助 - 否则我们可以研究其他一些选项(但 1 和 2 解决了 90% 的持久性问题)

    关于nHibernate:无法找到持久性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4344859/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com