Mysql 如何在fluent NHibernate中设置编码?

Mysql 如何在fluent NHibernate中设置编码?,mysql,nhibernate,fluent-nhibernate,character-encoding,Mysql,Nhibernate,Fluent Nhibernate,Character Encoding,我已通过以下sql查询创建了数据库: (“创建数据库”+DBName+“默认字符集=utf8-COLLATE=utf8\u-posian\u-ci”,连接) 我有一个流畅的配置: Fluently.Configure() .Database(MySQLConfiguration.Standard.ConnectionString(c => c.Server(server) .Database(DBNa

我已通过以下sql查询创建了数据库:
(“创建数据库”+DBName+“默认字符集=utf8-COLLATE=utf8\u-posian\u-ci”,连接)

我有一个流畅的配置:

Fluently.Configure()
                     .Database(MySQLConfiguration.Standard.ConnectionString(c => c.Server(server)
                        .Database(DBName).Username(username).Password(password)))
                     .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Program>())
                     .BuildSessionFactory();
流利。配置()
.Database(MySQLConfiguration.Standard.ConnectionString(c=>c.Server(Server))
.Database(DBName).用户名(Username).密码(Password)))
.Mappings(m=>m.FluentMappings.AddFromAssemblyOf())
.BuildSessionFactory();
如何在此配置中设置NHibernate编码?或者如何设置映射编码


我想这样做是因为当我想选择一个具有UTF8编码的属性时,NHibernate sql将包括???????在编码字符串中,设置数据库编码与Fluent NHibernate无关。检查您的连接字符串,它应该如下所示:

Server=myServerAddress;Database=myDataBase;Uid=user;Pwd=passw; CharSet=UTF8;
var mysqlconf=MySQLConfiguration.Standard .ConnectionString(c=>c.Is(“服务器=srv;数据库=db;用户=dev;密码=pass;字符集=utf8”); 流畅地返回.Configure().Database(mysqlconf).Mappings(m=> m、 FluentMappings.AddFromAssemblyOf()).BuildSessionFactory();
您是否在MySQL连接字符串中指定UTF8字符集?现在我尝试了这个连接字符串,现在一切正常。但我不得不在配置中使用字符串。有没有一种方法可以在linq的连接字符串中使用字符集?就像我写的代码一样?我不确定当您通过该路径时,fluent是否有任何内容可以公开字符集,但是如果您将连接字符串作为一项存储在配置文件中,则会有c.FromConnectionStringWithKey(“connectionStringName”)。如果您不想在配置文件中使用字符串,可以使用c.Is(“字符串”)并按照上面的方式构建连接字符串。请阅读我上面的注释。有没有一种使用linq定义字符集的方法?仅供参考,您应该将其写成:charset=utf8;而不是帽子。
var mysqlconf = MySQLConfiguration.Standard
.ConnectionString(c => c.Is("Server=srv;Database=db;User=dev;Password=pass;CharSet=utf8"));

return Fluently.Configure().Database(mysqlconf).Mappings(m =>
    m.FluentMappings.AddFromAssemblyOf<Program>()).BuildSessionFactory();