首页 / 知识
关于c#:NHibernate.MappingException:没有用于XYZ的持久性
2023-04-15 01:19:00

NHibernate.MappingException: No persister for: XYZ
现在,在您说出它之前:我做了Google,而我的 这是我正在调用的代码:
这是我的班级映射文件:
有人遇到过这个问题吗? 这是完整的错误消息:
更新,这是我的方案的解决方案:我已经更改了一些代码,并且没有在运行时将Assembly添加到配置文件中。 听起来好像您忘记了将映射程序集添加到会话工厂配置中。 如果您使用的是app.config ...
显而易见的东西,但对于NHibernate新手来说却很有用。 所有XML映射文件都应视为嵌入式资源,而不是默认内容。通过编辑文件属性中的"构建操作"属性来设置此选项。 然后将XML文件嵌入到程序集中,并在NHibernate的配置阶段的项目启动时进行解析。 我的问题是我忘记将.hbm放在映射xml的名称中。另外,请确保将其设为嵌入式资源! 我从这里得到的: 就我而言,映射类不是公共的。换句话说,代替:
我刚刚有:
花了大约4个小时在谷歌搜索和stackoverflowing上,尝试了周围的所有东西,我发现了自己的错误: 我的映射文件名为.nbm.xml而不是.hbm.xml。太疯狂了 我有类似的问题,我按照以下方法解决了:
我正在使用MS SQL 2008,但是在NH配置中,我的方言不好: 要增加Amol的答案,请不要犯错误指定Interface类类型。确保指定实现类。 (即,不要使用IDomainObjectType)。不是我犯了这个错误... :)
我还在初始化期间添加了错误的程序集。我要保留的类在程序集#1中,而我的.hbm.xml文件嵌入在程序集#2中。我更改了 由于无效的映射配置而发生此错误。您应该检查为会话工厂设置.Mappings的位置。基本上在项目中搜索" .Mappings(",并确保在下面的行中指定了正确的实体类。
我遇到了同样的问题,因为我在Configuration.AddAssembly()方法中添加了错误的程序集。
应该是 接下来将使用非泛型测试进行尝试,以确保您传递了正确的type参数。 您可以发布整个错误消息吗? 不要忘记在.config文件中指定映射信息 例如 其中MyApp.Data是包含您的映射的程序集 如果从单独的程序集在存储库上运行测试,请确保将Hibernate.cfg.xml设置为始终在该程序集的bin目录中输出。对于我们而言,这不是真的,在某些情况下,我们遇到了上述错误。 免责声明:这可能是一些深奥的建议,因为这是我们构造存储库集成测试程序集的直接结果(即,我们从每个测试程序集到单个Hibernate.xfg.xml都有一个符号链接)
确保已在Session上为要从数据库获取的域对象调用了
通过id查找对象时出现了类似的问题...
对象,所以变成这样:
|
最新内容
相关内容
linux文件常用命令?
linux文件常用命令?,工作,地址,信息,系统,命令,目录,标准,情况,管理,常用命令,linux常用命令及用法linux系统常用操作命令如下:ls:全拼list,功能文件夹排序linux命令?
文件夹排序linux命令?,系统,数字,信息,工作,时间,命令,管理,设备,单位,工具,基本linux命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出linux怎么调用命令行?
linux怎么调用命令行?,系统,地址,工具,工作,首页,终端,命令,密码,信息,情况,linux怎么打开命令行窗口1、在Linux系统中,打开命令行窗口需要使用压缩文件夹命令linux?
压缩文件夹命令linux?,系统,软件,命令,工具,电脑,文件,文件名,格式,选项,目录,Linux中文件的压缩与解压缩命令操作示例集锦在Linux系统中,我们linux管理文件的命令?
linux管理文件的命令?,系统,管理,工作,命令,信息,基础,目录,工具,文件,操作,linux系统常用操作命令1、linux常用命令有pwd命令、cd命令、ls命浏览器调用linux命令?
浏览器调用linux命令?,系统,信息,人工智能,软件,数据,首次,地址,代码,咨询,服务,求助大神,如何通过网页使用python向linux系统发送一些命令执linux退出文件命令行?
linux退出文件命令行?,状态,档案,命令,电脑,编辑,文件,模式,界面,指令,键盘,linux用VI编辑后保存退出命令是什么啊?1、linux退出vi编辑命令有linux文件io命令?
linux文件io命令?,系统,设备,时间,地址,平均,信息,服务,工具,报告,网络,嵌入式Linux开发中的文件I/O是什么?1、文件I/O就是对外设进行文件抽象改文件linux命令行?
改文件linux命令行?,地址,系统,工作,信息,数字,文件,命令,设备,密码,权限,linux常用命令有哪些1、linux系统常用操作命令linux系统常用操作命浏览器调用linux命令?
浏览器调用linux命令?,系统,信息,人工智能,软件,数据,首次,地址,代码,咨询,服务,求助大神,如何通过网页使用python向linux系统发送一些命令执拷贝文件夹linux命令?
拷贝文件夹linux命令?,系统,地址,服务,信息,密码,情况,单位,项目,命令,文件,linux系统如何挂载硬盘并拷贝到某个目录下?copy命令 该命令的功进入文件夹linux命令?
进入文件夹linux命令?,系统,密码,终端,目录,标的,一致,传播,图片,环境,工作,linux系统怎么进入某个文件1、要修改/etc/profile,先要使用root用