2016-12-28 9 views
1

OracleClientに関連付けられたEntityFrameworkモデル(edml)があります。私はデータにアクセスするために私のエンティティモデルオブジェクトでLINQクエリを使用しています。私が直面している問題は、データにエンコードされた文字 "ä"がある場合、LINQクエリ結果セットに通常のデコードされた文字列 "a"が表示されることです。私は文字エンコーディングを維持する必要があります。EntityFramework LINQクエリからエンコードされた文字列を取得できません。

ここまで私がこれまで行ってきたことはありません。

  1. 以下のリンクに記載されているように、Unicodeプロパティをtrueに設定しました。

    EntityFramework update or insert Chinese or non-English text

  2. 下記のリンクで述べたように、私は私のConnectionStringのcharset = UTF8を設定しようと、私はエラーを取得してしまいます。 "接続文字列パラメータ 'CharSet'が不明です。私は可能なすべての組み合わせ(charset、CharSetなど)を試しました。なし

    Entity Framework C# Insert Data russian encoding problems

を働いていない私はOracleDataAccessオブジェクトの代わりに、EntityFrameworkを使用してデータにアクセスすると、予想通り、私はデータを取得します。以下のサンプルは私に正しいデータを与えます。

using (OracleConnection connection = new OracleConnection(ConfigurationManager.ConnectionStrings["connString"].ConnectionString)) 
{ 
    connection.Open(); 
    using (OracleCommand command = new OracleCommand(@"SELECT * FROM EMP", connection)) 
    { 
     Console.WriteLine("Connectin Complete"); 
     command.BindByName = true; 
     command.CommandType = CommandType.Text; 

     Console.WriteLine("Reading Data"); 
     OracleDataReader dr = command.ExecuteReader(); 
     // dr.Read(); 
     DataTable dt = new DataTable(); 
     dt.Load(dr); 
     for (int i = 0; i < dt.Rows.Count; i++) 
     { 
      StringBuilder sb = new StringBuilder(); 
      for (int j = 0; j < dt.Rows[i].ItemArray.Count(); j++) 
      { 
       sb.Append(dt.Rows[i].ItemArray[j].ToString()); 
       sb.Append("\t\t"); 
      } 
      Console.WriteLine(sb.ToString()); 
     } 
     Console.WriteLine("Displaying the Data"); 
     Console.ReadLine(); 

    } 
} 

私が望むのは、EFからのDBからそのままデータを取得することです。どんな助けでも私の人生はずっと楽になります。

答えて

0

「Unicode = true;」を追加してください。あなたのconnection stringのオプションこれは役に立ちますか?

関連する問題