NHibernate映射异常。没有坚持者

NHibernate映射异常。没有坚持者,nhibernate,nhibernate-mapping,Nhibernate,Nhibernate Mapping,我在试着让NHibernate去工作。我有一门课: mm.k.Domain.Kampagne (命名空间/程序集是mm.k.Domain) 在另一个VisualStudio项目(Assembly mm.k.Infrastructure)中,我得到了映射文件(在映射目录中)、hibernate.cfg.xml和一些存储库 这是我的映射文件: <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn

我在试着让NHibernate去工作。我有一门课:

mm.k.Domain.Kampagne
(命名空间/程序集是mm.k.Domain)

在另一个VisualStudio项目(Assembly mm.k.Infrastructure)中,我得到了映射文件(在映射目录中)、hibernate.cfg.xml和一些存储库

这是我的映射文件:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   assembly="mm.k.Domain"
                   namespace="mm.k.Domain">

  <class name="Kampagne" table="Kampagner">
    <id name="Id">
      <generator class="identity" />
    </id>
    <property name="Navn" not-null="true" />
    <property name="Logo" />
  </class>

</hibernate-mapping>
这就是不起作用的! 打电话时:

var test = session.Get<Kampagne>(kampagneId);
一切都很好


有什么想法吗?提前谢谢。

不确定您的nhibernate.cfg.xml文件是什么样子,但我通常有这样一个项目

<mapping assembly="mm.K.Infrastructure"/>

根据你提供的信息。NHibernate使用此选项从该特定程序集加载映射文件


这将为您提供所需的映射。

不确定您的nhibernate.cfg.xml文件是什么样子,但我通常有这样一个项目

<mapping assembly="mm.K.Infrastructure"/>

根据你提供的信息。NHibernate使用此选项从该特定程序集加载映射文件


这将为您提供所需的映射。

以防有人像我一样在Hibernate.NET上遇到此问题。
确保您在属性窗口中为文件构建操作选择了“嵌入式资源”

,以防有人像我一样在Hibernate.NET上遇到此问题。
确保在“属性”窗口中为文件生成操作选择了“嵌入式资源”

每当使用hbm.xml文件时,您都会这样设置配置类:

Configuration cfg = new Configuration();
cfg.Configure();
// Add class mappings to configuration object
cfg.AddAssembly(Assembly.GetCallingAssembly());
ISessionFactory sessionFactory = cfg.BuildSessionFactory();
无论何时使用Nhibernate.Mapping.Attributes(如classe),您都必须使用: 例如,在产品类中使用Mapping.attributes

Configuration cfg = new Configuration();
cfg.Configure();
// Add class mappings attributes to configuration object
cfg.AddInputStream(HbmSerializer.Default.Serialize(typeof(Model.Product);
ISessionFactory sessionFactory = cfg.BuildSessionFactory();

无论何时使用hbm.xml文件,您都将按如下方式设置配置类:

Configuration cfg = new Configuration();
cfg.Configure();
// Add class mappings to configuration object
cfg.AddAssembly(Assembly.GetCallingAssembly());
ISessionFactory sessionFactory = cfg.BuildSessionFactory();
无论何时使用Nhibernate.Mapping.Attributes(如classe),您都必须使用: 例如,在产品类中使用Mapping.attributes

Configuration cfg = new Configuration();
cfg.Configure();
// Add class mappings attributes to configuration object
cfg.AddInputStream(HbmSerializer.Default.Serialize(typeof(Model.Product);
ISessionFactory sessionFactory = cfg.BuildSessionFactory();

我开始有问题了。但突然发现映射文件没有嵌入。
转到.hbm.xml文件。单击属性。然后高级->选择“嵌入式资源”

我发现了这个问题。但突然发现映射文件没有嵌入。
转到.hbm.xml文件。单击属性。然后高级->选择“嵌入式资源”

,这就成功了。非常感谢。奇怪的是,NHibernate入门教程没有提到这一点?这就成功了。非常感谢。奇怪的是,NHibernate入门教程没有提到这一点?很好,这对我来说很好,不像这里的任何其他答案。很好。很好,这对我来说很好,不像这里的任何其他答案。美好的