c# - GAC 中没有 MySql.Data 的 Fluent NHibernate 连接到 MySql

标签 c# mysql .net nhibernate fluent-nhibernate

问题的标题几乎说明了一切。

我想这样做,因为每次我从安装程序项目发布或创建安装程序时,它总是失败,因为它无法连接到 MySql。

错误说:

Unable to find the requested .Net Framework Data Provider. It may not be installed.

在我的开发 PC 中,MySql.Data 已添加到 GAC,因此不会产生任何问题。

可以吗?我已经设置了 Copy Local = true。

这是我当前的 FluentConfiguration :

 _sessionFactory = Fluently.Configure()
                .Database(MySQLConfiguration
                    .Standard
                    .ConnectionString(_systemSetting.ConnectionString)
                    .Provider("MySql.Data.MySqlClient")
                    .Driver<NHibernate.Driver.MySqlDataDriver>())
                .Mappings(m => m.FluentMappings.AddFromAssemblyOf<EmployeeMap>())
                .BuildSessionFactory();

谢谢。

更新: MySql.Data.dll

最佳答案

MySql.data.dll必须位于包含您发布的代码的程序集旁边。还有 .Provider("MySql.Data.MySqlClient").Driver<NHibernate.Driver.MySqlDataDriver>()是多余的,因为您已经指定了 MySQLConfiguration.Standard它已经设置了驱动程序和提供程序。

关于c# - GAC 中没有 MySql.Data 的 Fluent NHibernate 连接到 MySql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17657649/

相关文章:

Visual Studio 和 Visual Studio Code 中的 C#

sql - 简单的SQL问题(mysql)

python - Django - 以 latin1 格式发布数据,解码为 utf-8

php - echo 中的 if !empty 表达式

c# - 为什么十进制最小值不转换为字符串?

c# - 基于角色的方法访问

C# 卸载事件

c# - 此 XmlWriter 不支持 base64 编码数据

c# - 使用 Linq 仅选择最低值

c# - WPF 像素网格线