NHibernate的:无法编译映射文件的.hbm.xml
问题描述:
// xml文件NHibernate的:无法编译映射文件的.hbm.xml
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
namespace="ContactDomain"
assembly="ContactDomain">
<class name="Contact" table="tbl_contact">
<id name="ContactId" column="contact_id" type="int">
<generator class="identity"></generator>
</id>
<property name="FirstName" column="first_name" type="String"/>
<property name="LastName" column="last_name" type="String"/>
<property name="Email" column="email" type="String"/>
<property name="Telephone" column="telephone" type="String"/>
</class>
</hibernate-mapping>
//web.config
<configSections>
<section
name="nhibernate"
type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
/>
</configSections>
<nhibernate>
<add
key="hibernate.connection.provider"
value="NHibernate.Connection.DriverConnectionProvider"
/>
<add
key="hibernate.dialect"
value="NHibernate.Dialect.MsSql2000Dialect"
/>
<add
key="hibernate.connection.driver_class"
value="NHibernate.Driver.SqlClientDriver"
/>
<add
key="hibernate.connection.connection_string"
value="Data Source=myServer;Initial Catalog=myDatabase;Persist Security Info=True;User ID=myDbUsername;"
/>
</nhibernate>
//保存按钮
NHibernate.Cfg.Configuration config = new NHibernate.Cfg.Configuration();
config.AddAssembly("ContactDomain");
NHibernate.ISessionFactory factory = config.BuildSessionFactory();
NHibernate.ISession session = factory.OpenSession();
NHibernate.ITransaction transaction = session.BeginTransaction();
// create contact
Contact contact = new Contact();
contact.FirstName = txtFirstName.Text;
contact.LastName = txtLastName.Text;
contact.Email = txtEmail.Text;
contact.Telephone = txtTelephone.Text;
// Tell NHibernate that this object should be saved
session.Save(contact);
// commit all of the changes to the DB and close the ISession
transaction.Commit();
session.Close();
答
通过它的外观你的web.config配置不正确,所以请看下面的示例。
<configSections>
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/>
</configSections>
<connectionStrings>
<add name="db" connectionString="Server=...;Database=...;Trusted_Connection=SSPI;"/>
</connectionStrings>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="proxyfactory.factory_class">
NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle
</property>
<property name="dialect">
NHibernate.Dialect.MsSql2008Dialect, NHibernate
</property>
<property name="connection.connection_string_name">db</property>
</session-factory>
</hibernate-configuration>
+0
这条线上有一个新的错误NHibernate.ISessionFactory factory = config.BuildSessionFactory();无法加载代理工厂 – user754461 2011-06-06 10:11:18
+0
您需要引用可在下载zip \ required_For_LazyLoading \ Castle \ *。dll中找到的dll – Rippo 2011-06-06 13:27:01
您是否试图查看InnerException以获取有关该错误的更多信息? – danyolgiax 2011-06-06 07:58:12
InnerException:无法在配置中找到方言 – user754461 2011-06-06 08:00:10
您可以发布HBM文件的整体而不仅仅是内部位。此外,我们可能不需要web.config – Rippo 2011-06-06 08:58:06