2016-12-28 60 views
1

我有我的EntityFramework模型(edml)與OracleClient掛鉤。我在我的實體模型對象上使用LINQ查詢來訪問數據。我面臨的問題是,當數據具有編碼字符「ä」時,我的LINQ查詢結果集將其顯示爲正常解碼字符串「a」。我需要維護字符編碼。無法從EntityFramework獲得編碼字符串LINQ查詢

以下是我迄今爲止所做的工作,迄今爲止他們都沒有工作。

  1. 我已經設置了統一屬性爲true在下面的鏈接中提到。

    EntityFramework update or insert Chinese or non-English text

  2. 我想在下面的鏈接中提到,我最終得到了錯誤設置的CharSet = UTF8在我的ConnectionString。 「未知連接字符串參數'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獲取數據庫中的數據。任何幫助都會讓我的生活變得更輕鬆。

回答