2011-07-14 5 views
3

私は、このSQLクエリで私のデータベースを作成しました: ("CREATE DATABASE " + DBName + " DEFAULT CHARSET=utf8 COLLATE=utf8_persian_ci", connection)流暢なNHibernateでエンコーディングを設定するには?

そして、私はこの流暢な構成を有している:

Fluently.Configure() 
        .Database(MySQLConfiguration.Standard.ConnectionString(c => c.Server(server) 
         .Database(DBName).Username(username).Password(password))) 
        .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Program>()) 
        .BuildSessionFactory(); 

どのように私は、この構成でNHibernateのエンコーディングを設定することができますか?またはマッピングをどのように設定することができますか?

私はUTF8エンコーディングを持つプロパティで選択したいときにこれをしたいと思います。NHibernateのSQLには???????エンコードされた文字列

+0

あなたはMySQLの接続文字列でUTF8文字セットを指定していますか? – AlexCuse

+0

今、この接続文字列を試してみましたが、今は大丈夫です。しかし私は私の設定で文字列を使用することを余儀なくされました。 linqとの接続文字列でcharsetを使用する方法はありませんか?私のコードのように私は書いている? – Arash

+0

あなたがそのパスを辿るときに流暢に何か文字列を公開するかどうかは分かりませんが、設定ファイルに接続文字列を1つの項目として格納するとc.FromConnectionStringWithKey( "connectionStringName")があります。設定ファイルで文字列を使用したくない場合は、c.Is( "string")を使用して、上記の方法で接続文字列を作成できます。 – AlexCuse

答えて

3
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(); 
3

データベースエンコーディングの設定はFluent NHibernateとは関係ありません。あなたの接続文字列をチェックし、それは次のようにする必要があります:

Server=myServerAddress;Database=myDataBase;Uid=user;Pwd=passw; CharSet=UTF8; 
+0

私の上のコメントをお読みください。 linqを使って文字セットを定義する方法はありませんか? – Arash

+0

参考までに、次のように記述する必要があります。CharSet = utf8; CAPSではありません。 – RicL