2016-12-28 3 views
1

У меня есть модель EntityFramework (edml), ​​подключенная к OracleClient. Я использую LINQ-запросы для моего объекта модели Entity для доступа к данным. Проблема, с которой я сталкиваюсь, заключается в том, что когда данные имеют кодированный символ, скажем, «ä», мой набор результатов запроса LINQ показывает его как нормальную расшифрованную строку «a». Мне нужно поддерживать кодировку символов.Невозможно получить закодированные строки из EntityFramework LINQ Query

Вот что я сделал до сих пор, и никто из них не работал до сих пор.

  1. Я установил свойство Юникод как истинный, как указано в ссылке ниже.

    EntityFramework update or insert Chinese or non-English text

  2. Я попытался установить НаборСимволов = utf8 в моем ConnectionString, как указано в ссылке ниже, и я в конечном итоге получить ошибку. Msgstr "Неизвестный параметр строки подключения" 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. Любая помощь облегчит мне жизнь.

ответ