C#Nhibernate:未声明'assembly'属性

时间:2011-05-24 10:07:48

标签: c# nhibernate assemblies

我一直试图解决我的问题几个小时,所以我认为是时候在这里发一个问题了。

问题
当我启动我的单元测试来检查我的休眠配置时给了我一个例外:

  

解析时发生异常   配置:'组装'   属性未声明。

我的代码
的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:这个网站的创建新帐户不起作用:它给了我一个没有找到页面的例外。

0 个答案:

没有答案