我一直试图解决我的问题几个小时,所以我认为是时候在这里发一个问题了。
问题
当我启动我的单元测试来检查我的休眠配置时给了我一个例外:
解析时发生异常 配置:'组装' 属性未声明。
我的代码
的hibernate.cfg.xml
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" assembly="Pccleaner.Dmt">
<session-factory>
<property name='proxyfactory.factory_class'>NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
<property name="connection.connection_string">Database=****;Data Source=localhost;User Id=****;Password=*****</property>
<property name="dialect">NHibernate.Dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<mapping assembly="Pccleaner.Dmt"/>
</session-factory>
myunittest.cs
var cfg = new Configuration().Configure();
new SchemaExport(cfg).Execute( false, true, false);
我尝试了什么
我找到了手动添加组件的示例。我更喜欢在配置文件中设置我的程序集,但为了使其正常工作,我尝试了这段代码:
var cfg = new Configuration();
cfg.AddAssembly("Pccleaner.Dmt");
cfg.Configure();
new SchemaExport(cfg).Execute( false, true, false);
此代码导致以下异常:
无法编译映射文档:Pccleaner.Dmt.Mappings.Project.hbm.xml ----&GT; System.InvalidOperationException:无法在配置中找到方言
配置文件Project.hbm.xml如下所示:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Pccleaner.Dmt" namespace="Pccleaner.Dmt">
<class name="Project" table="pcc_dmt_project">
<id name="ID" column="id">
<generator class="identity" />
</id>
<property name="Name" not-null="true" column="name" length="50"/>
<property name="SvnRepository" not-null="true" column="svn_repository" />
<property name="SvnUserName" not-null="false" column="svn_user_name"/>
<property name="SvnUserPassword" not-null="false" column="svn_user_password"/>
<bag name="Revisions" cascade="all">
<key column="project_id"/>
<one-to-many class="Pccleaner.Dmt.Revision"/>
</bag>
</class>
</hibernate-mapping>
Project.cs:
namespace Pccleaner.Dmt {
public class Project {
public virtual int ID { get; set; }
public virtual string Name { get; set; }
public virtual string SvnRepository { get; set; }
public virtual string SvnUserName { get; set; }
public virtual string SvnUserPassword { get; set; }
public virtual IList<Revision> Revisions { get; set; }
}
}
搜索不同的异常并没有给我任何线索来解决这个问题。在我在测试项目中删除了重复的hibernate配置之前它正在工作。 对于每个hibernate配置文件,我更改了属性以将其嵌入为资源。 hibernate配置文件被复制到我测试项目的bin文件夹中。
我是hibernate的新手,不同的异常和配置hibernate的方法导致我的大脑眩晕。你能帮帮我吗?
offtopic:这个网站的创建新帐户不起作用:它给了我一个没有找到页面的例外。