城堡ActiveRecord没有连接到数据库

本文关键字:数据库 连接 ActiveRecord 城堡 | 更新日期: 2023-09-27 18:07:33

我最近接到了一项工作任务,要求我学习有关这个框架的所有内容,但我甚至无法开始。我阅读了所有关于这个特定初始化部分的博客和文档,但它们都是至少3-4年前的,没有关于它的更新信息。这是Castle ActiveRecord的官方文件。我改变了一点,因为inplaceconconfigurationsource不再有使用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'抛出异常。

"无法加载类型' iis . collections . generic "。哈希集'1'从程序集'Iesi。collection, Version=4.0.0.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4'.":"Iesi.Collections.Generic. "HashedSet ' 1 "

城堡ActiveRecord没有连接到数据库

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