2009-10-09 61 views
3

您好我在尝试初始化ActiveRecord时遇到异常,我无法弄清楚我缺少什么。我试图说服我使用Castle ActiveRecord的公司,如果我无法证明它是如何工作的,它看起来不会很好。我之前使用Castle ActiveRecord开发过项目,之前我从未遇到过这个问题。Castle ActiveRecord“无法编译映射文档:(字符串)”

感谢您的帮助

,我得到的是

堆栈跟踪异常:

在Castle.ActiveRecord.ActiveRecordStarter.AddXmlString(配置配置,XML字符串,ActiveRecordModel模型) 在城堡.ActiveRecord.ActiveRecordStarter.AddXmlToNHibernateCfg(ISessionFactoryHolder持有者,ActiveRecordModelCollection模型) at Castle.ActiveRecord.ActiveRecordStarter.RegisterTypes(ISessionFactoryHolder持有者,IConfigurationSource源,IEnumerable`1类型,Boo C:\ Projects \ CastleDemo \ ConsoleApplication1 \ Program.cs中的ConsoleApplication1.Program.Main(String [] args) :line 20 在System.AppDomain._nExecuteAssembly(大会组件,字串[] args) 在System.AppDomain.ExecuteAssembly(字符串assemblyFile,证据assemblySecurity,字串[] args) 在Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 在在System.Threading.ThreadHelper.ThreadStart() System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回调,对象状态)System.Threading.ThreadHelper.ThreadStart_Context(对象状态)

内部异常:

{ “无法编译映射文件:(串)”}

下面是我的配置文件:

<add 
    key="connection.driver_class" 
    value="NHibernate.Driver.SqlClientDriver" /> 
<add 
    key="dialect" 
    value="NHibernate.Dialect.MsSql2000Dialect" /> 
<add 
    key="connection.provider" 
    value="NHibernate.Connection.DriverConnectionProvider" /> 
<add 
    key="connection.connection_string" 
    value="Data Source=SPIROS\SQLX;Initial Catalog=CastleDemo;Integrated Security=SSPI" /> 
<add 
    key="proxyfactory.factory_class" 
    value="NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle" /> 

,这是运行初始化的主要方法:

static void Main(string[] args) 
    { 
     //Configure ActiveRecord source 
     XmlConfigurationSource source = new XmlConfigurationSource("../../config.xml"); 
     // 

     //Initialazi ActiveRecord 
     ActiveRecordStarter.Initialize(source, typeof(Product)); 
     // 

     //Create Schema 
     ActiveRecordStarter.CreateSchema(); 
     // 
    } 
+0

这种错误可能与命名查询或含有映射标识符(XML)冒犯字符 – smoothdeveloper 2010-06-21 08:41:53

回答

5

OK ..得到它的工作。

我有一个NHibernate的版本要求在关键属性中有“休眠”。

例如

取而代之的是:

<add 
    key="connection.driver_class" 
    value="NHibernate.Driver.SqlClientDriver"/> 

这样做:

<add key="hibernate.connection.driver_class" value="NHibernate.Driver.SqlClientDriver" />

NHibernate的相反作品较新的版本。

0

贵的Visual Studio提示你,当你键入: 值=“NHibernate.Driver.SqlClientDriber” ......

+0

打开一个新问题,而不是在此页面上提问。本页面的重点是获得答案,而不是另一个问题。 – Phil 2011-02-12 02:44:00

+0

欢迎来到SO。一个问题可能在答案框中给出。请使用适当的块来提问! – Luv 2012-12-26 13:51:02