Nhibernate对.hbm.xml文件没有持久性

时间:2013-03-24 03:20:38

标签: c# nhibernate nhibernate-mapping

我正在创建一个动态xml映射文件并提供给Nhibernate,因为它用于动态对象创建,最后保存在工作项目中的bin \ debug文件夹中。我在创建动态映射xml文件之后尝试配置这些文件将xml文件导入Nhibernate我收到编译错误,因为* “doc xmlns不是预期的”。如果我从bin文件夹移动到* \ bin \ Debug 文件夹,那么它就会成功编译并获得“此EntityObject.hbm.xml没有持久性”文件。

我的xml映射看起来像我的bin文件夹中的“Entityobject.hbm.xml”名称

<?xml version="1.0" encoding="UTF-8"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Dal" namespace="Dal">
  <class name="Dal.DynamicAttributesDao,Dal" table="MM_AttributeRecord_2_V1" entity-name="AttributeRecord2" lazy="true">
    <id name="Id" column="Id">
      <generator class="assigned" />
    </id>
    <dynamic-component name="Attributes">
      <property type="string" not-null="true" name="Filename" column="Attr_5" />
      <property type="string" not-null="true" name="Size" column="Attr_6" />
      <property type="string" not-null="true" name="Type" column="Attr_7" />
      <property type="string" not-null="true" name="Addedby" column="Attr_8" />
      <property type="string" not-null="true" name="Approvalstatus" column="Attr_9" />
      <property type="string" not-null="true" name="Url" column="Attr_10" />
      <property type="string" not-null="true" name="Round" column="Attr_11" />
    </dynamic-component>
  </class>
</hibernate-mapping>
我的“DynamicAttributeDao”上面的

通过使用 IDictionary属性和我的代码结构(如

)来保存所有动态属性
 public Class DynamicAttributesDao : BaseEntity
    {

        int Id ;

         IDictionary Attributes ;
    }

之后我将所有.hbm.xml文件配置为Nhibernate并编写代码

 string mappingfilesPath = AppDomain.CurrentDomain.BaseDirectory;
            mappingfilesPath = mappingfilesPath + "bin\\";
            foreach (string file in Directory.EnumerateFiles(mappingfilesPath, "*.xml"))
            {
               // string contents = File.ReadAllText(file);
                XmlDocument loadxml = new XmlDocument();
                loadxml.Load(file);
                var xmlfilename = file.Substring(file.LastIndexOf("\\"));
                new NHibernate.Cfg.Configuration()
               .AddDocument(loadxml).BuildSessionFactory();
                loadxml.Save(mappingfilesPath + xmlfilename);
            }

我该如何解决这个问题?

0 个答案:

没有答案