流畅的NHibernate MappingException:XML验证错误

时间:2017-07-13 13:29:10

标签: c# .net asp.net-mvc nhibernate fluent-nhibernate

我继承了一个MVC项目,该项目利用NHibernate作为使用Fluent NHibernate配置的ORM,我尝试修改其中一个实体类但得到一个非常无用的异常:

  

类型' NHibernate.MappingException'的例外情况发生在NHibernate.dll但未在用户代码中处理

     

附加信息:(XmlDocument)(3,6):XML验证错误:元素'类' in namespace' urn:nhibernate-mapping-2.2'具有无效的子元素'属性'在命名空间' urn:nhibernate-mapping-2.2'。预期可能元素的列表:'元,子选择,缓存,同步,评论,tuplizer,id,composite-id'在命名空间' urn:nhibernate-mapping-2.2'。

在我对实体模型进行一些更改后,每次应用程序启动都会发生这种情况。我已经向ExampleEntity添加了一个名为EntitySettings的新属性,这是一个包含布尔值的简单类。我试图将这个一对一的子类映射到父表中的列。

public class ExampleEntity
{
    public virtual long Id { get; set; }
    ...
    // I've added the following member:
    public virtual EntitySettings EntitySettings { get; set; }
}

// New class
public class EntitySettings
{
    public virtual bool FlagA { get; set; }
    public virtual bool FlagB { get; set; }
    public virtual bool FlagC { get; set; }
}

我已经配置了#34;流利的"如下:

public class ExampleEntityMapping : IAutoMappingOverride<ExampleEntity>
{
    public void Override(AutoMapping<ExampleEntity> mapping)
    {
        ...
        mapping.Component(x => x.EntitySettings, comp =>
        {
            comp.Map(x => x.FlagA).Column("EntitySettingsFlagA");
            comp.Map(x => x.FlagB).Column("EntitySettingsFlagB");
            comp.Map(x => x.FlagC).Column("EntitySettingsFlagC");
        });
    }
}

我不太了解NHibernate,了解如何对此进行故障排除,并且谷歌搜索错误并没有产生任何有意义的信息。有人能指出我正确的方向吗?

更新

我已将我的EntitySettings类修改为结构,但由于某种原因,现在可以使用了。然而,这对我来说似乎是不好的做法,因为这个对象应该是可变的。我是否缺少能够将类用作映射中的组件的配置?

0 个答案:

没有答案