您好我在尝试初始化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();
//
}
答案 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” ....