编译时出错

时间:2011-02-10 17:11:12

标签: c# winforms nhibernate-mapping

错误在线:config.AddAssembly(“Hibernatetest”);

错误消息:无法编译映射文档:Hibernatetest.Company.hbm.xml

Configuration config = new Configuration();
            ISessionFactory factory;
            config.SetProperty(NHibernate.Cfg.Environment.ConnectionProvider, "NHibernate.Connection.DriverConnectionProvider");
            config.SetProperty(NHibernate.Cfg.Environment.Dialect, "NHibernate.Dialect.MsSql2008Dialect");
            config.SetProperty(NHibernate.Cfg.Environment.ConnectionDriver , "NHibernate.Driver.SqlClientDriver");
            config.SetProperty(NHibernate.Cfg.Environment.ConnectionString, "Data Source=(local);Initial Catalog=Chitty;Integrated Security=True");
            config.SetProperty(NHibernate.Cfg.Environment.ProxyFactoryFactoryClass, "NHibernate.ByteCode.Castle.Core.ProxyFactoryFactory ,NHibernate.ByteCode.Castle.Core");
            config.AddAssembly("Hibernatetest");

这是公司的xml文件

<hibernate-mapping xmlns="urn:nhibernate-mapping-3.0" namespace="Hibernatetest"
assembly="Hibernatetest">
  <class name="Company" table="Company">
    <id name="company_Id">
      <generator class="identity" />
    </id>
    <property name="company_name" type="string" />
    <property name="company_email" type="string"/>
    <property name="company_size" type="string"/>
  </class>
</hibernate-mapping>

请帮助

2 个答案:

答案 0 :(得分:0)

类名错误,使用完整命名空间编写类名(如果您不想在映射级别指定命名空间。违规部分肯定是公司之后的逗号。顺便说一下,如果是没有解决,请在你的问题中添加类:看起来很奇怪你已经定义了ac#class,其属性名为“company_name”。

答案 1 :(得分:0)

您好 我不知道为什么你把你的命名空间放在hbm文件中: Hibernatetest.Company.hbm.xml 并将命名空间放在类名中:

这应该是看起来的样子:

Company.hbm.xml

<hibernate-mapping xmlns="urn:nhibernate-mapping-3.0" namespace="Hibernatetest"
assembly="Hibernatetest">
  <class name="Company" table="Company">
    <id name="company_Id">
      <generator class="identity" />
    </id>
    <property name="company_name" type="string" />
    <property name="company_email" type="string"/>
    <property name="company_size" type="string"/>
  </class>
</hibernate-mapping>

此外,您可以摆脱类型,但将列属性放在属性中是一种很好的做法。