错误在线: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>
请帮助
答案 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>
此外,您可以摆脱类型,但将列属性放在属性中是一种很好的做法。