无法从nhibernate.driver.sqlclientdriver创建驱动程序,nhibernate,version=5.3.0.0,culture=neutral,publickeytoken=aa95f207798dfdb4

问题描述 投票:0回答:1

我在 .net 6 项目中遇到了以下错误 fluenceNhibernate,但相同的代码在框架 4.8 中工作。

错误:无法从 nhibernate.driver.sqlclientdriver 创建驱动程序,nhibernate,version=5.3.0.0,culture=neutral,publickeytoken=aa95f207798dfdb4

我在 .net 6 中的代码是:

public class DatabaseContext
{
    private static ISessionFactory session;

    private static ISessionFactory CreateSession()
    {
        const string connectionString = "Data source=SQLEXPRESS;Database=**;Integrated Security=True";

        if (session != null)
        {
            return session;
        }
        var sqlConfiguration = MsSqlConfiguration.MsSql2012.ConnectionString(connectionString);

        return Fluently.Configure()
            .Database(sqlConfiguration)
            .Mappings(m => m.FluentMappings.AddFromAssemblyOf<TokenMapping>())
            .ExposeConfiguration(cfg => new SchemaExport(cfg).Execute(false, true, false))
            .BuildSessionFactory();
    }
    public static NHibernate.ISession SessionOpen()
    {
        return CreateSession().OpenSession();
    }
}
c# nhibernate fluent-nhibernate nhibernate-mapping
1个回答
8
投票

您需要将nuget包System.Data.SqlClient添加到您的项目中,以使

NHibernate.Driver.SqlClientDriver
在.NET Core下工作。

还可以考虑使用

NHibernate.Driver.MicrosoftDataSqlClientDriver
代替(自 NHibernate v5.3 起可用),它依赖于 Microsoft.Data.SqlClient nuget 包。从现在开始,微软将支持在这个新的 NuGet 包中开发新功能(请参阅详细信息)。在流利的 NHibernate 中:

var sqlConfiguration = MsSqlConfiguration.
  .MsSql2012
  .Driver<MicrosoftDataSqlClientDriver>() //needs Microsoft.Data.SqlClient nuget package
...

© www.soinside.com 2019 - 2024. All rights reserved.