Castle ActiveRecord“无法编译映射文档:(字符串)”

时间:2009-10-09 18:25:52

标签: c# exception activerecord castle

您好我在尝试初始化ActiveRecord时遇到异常,我无法弄清楚我错过了什么。我试图说服我工作的公司使用Castle ActiveRecord,如果我不能证明它是如何工作的话,它看起来不会很好。我之前在Castle ActiveRecord上开展过项目工作,之前我从未遇到过这个问题。

感谢您的帮助

我得到的例外是

堆栈追踪:

在Castle.ActiveRecord.ActiveRecordStarter.AddXmlString(配置配置,字符串xml,ActiveRecordModel模型)    在Castle.ActiveRecord.ActiveRecordStarter.AddXmlToNHibernateCfg(ISessionFactoryHolder holder,ActiveRecordModelCollection模型)    在Castle.ActiveRecord.ActiveRecordStarter.RegisterTypes(ISessionFactoryHolder holder,IConfigurationSource source,IEnumerable`1 types,Boolean ignoreProblematicTypes)    在Castle.ActiveRecord.ActiveRecordStarter.Initialize(IConfigurationSource source,Type [] types)    在C:\ Projects \ CastleDemo \ ConsoleApplication1 \ Program.cs中的ConsoleApplication1.Program.Main(String [] args):第20行    在System.AppDomain._nExecuteAssembly(Assembly assembly,String [] args)    在System.AppDomain.ExecuteAssembly(String assemblyFile,Evidence assemblySecurity,String [] args)    在Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()    在System.Threading.ThreadHelper.ThreadStart_Context(对象状态)    在System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回调,对象状态)    在System.Threading.ThreadHelper.ThreadStart()

内部例外:

{“无法编译映射文档:(string)”}

以下是我的配置文件:

<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();
        //
    }

2 个答案:

答案 0 :(得分:5)

好的..让它运转起来。

我需要在关键属性中使用“休眠”的NHibernate版本。

例如

而不是:

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

这样做:

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

对于更新版本的NHibernate,相反的工作。

答案 1 :(得分:0)

键入时Visual Studio会提示您: 值= “NHibernate.Driver.SqlClientDriber” ....