Castle ActiveRecord未连接到数据库

时间:2015-08-13 06:59:50

标签: c# sql-server winforms nhibernate castle-activerecord

我最近得到了一份工作任务,以了解有关此框架的所有内容,但我甚至无法启动它。我阅读了有关这个特定初始化部分的所有博客和文档,但它们都至少有3-4年的历史,并且没有关于它的更新信息。 This是关于Castle ActiveRecord的官方文档。我改变了一点,因为InPlaceConfigurationSource不再有使用HashTable的重载,我认为这是它的问题,因为我得到了这个例外。

    public Form1()
    {
        InitializeComponent();

        InPlaceConfigurationSource source = new InPlaceConfigurationSource();

        IDictionary<string,string> properties = new Dictionary<string, string>();

        properties.Add("hibernate.connection.driver_class", "NHibernate.Driver.SqlClientDriver");
        properties.Add("hibernate.dialect", "NHibernate.Dialect.MsSql2008Dialect");
        properties.Add("hibernate.connection.provider", "NHibernate.Connection.DriverConnectionProvider");
        properties.Add("hibernate.connection.connection_string", "Server=.\\SQLEXPRESS;Initial Catalog=TestDB; Trusted_Connection=true;");

        source.Add(typeof(ActiveRecordBase), properties);

        ActiveRecordStarter.Initialize(source, typeof(Blog));
    }
  

Castle.ActiveRecord.ActiveRecordStarter&#39;的类型初始化程序。抛出异常。

     

&#34;无法加载类型&#39; Iesi.Collections.Generic.HashedSet&#39; 1&#39;来自assembly&#39; Iesi.Collections,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = aa95f207798dfdb4&#39;。&#34;:&#34; Iesi.Collections.Generic.HashedSet`1&#34;

1 个答案:

答案 0 :(得分:1)

我设法解决了这个问题,我会发布答案以防万一其他人陷入困境。我通过删除所有添加的引用并在另一个项目中查找旧的dll并在解决方案资源管理器中手动引用它来解决它。 NuGet管理器只返回彼此不兼容的较新版本(ActiveRecord,NHibernate,log4net等),或者不再定义所有旧类(即本文中的例外)