2016-12-28 1 views
1

OracleClient에 연결된 EntityFramework 모델 (edml)을 보유하고 있습니다. 내 Entity 모델 개체에 LINQ 쿼리를 사용하여 데이터에 액세스합니다. 내가 직면하고있는 문제는 데이터에 인코딩 된 문자 "ä"가있을 때 LINQ 쿼리 결과 집합에 정상적인 디코딩 된 문자열 "a"가 표시된다는 것입니다. 나는 문자 인코딩을 유지할 필요가있다.EntityFramework LINQ 쿼리에서 인코딩 된 문자열을 가져올 수 없습니다.

여기까지 제가 한 일들과 지금까지 아무 것도하지 않은 것들이 있습니다.

  1. 아래 링크에서 언급 한 것처럼 유니 코드 속성을 true로 설정했습니다.

    EntityFramework update or insert Chinese or non-English text

  2. 나는 아래 링크에서 언급 내가 오류를 받고 결국 나의 ConnectionString을에 CharSet는 = UTF8을 설정했습니다. "알 수없는 연결 문자열 매개 변수 'CharSet'". 가능한 조합 (charset, CharSet 등)을 시도했습니다. 내가 대신 EntityFramework의 OracleDataAccess 객체를 사용하여 데이터를 액세스 할 때 없음

    Entity Framework C# Insert Data russian encoding problems

을 일하지, 나는 예상대로 데이터를 얻을. 아래 샘플은 정확한 데이터를 제공합니다.

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에 입력하십시오. 이게 도움이 되나요?

관련 문제