【发布时间】:2017-05-12 19:25:51
【问题描述】:
我的 EntityFramework 模型 (edml) 与 OracleClient 连接。我在我的实体模型对象上使用 LINQ 查询来访问数据。我面临的问题是,当数据具有编码字符“ä”时,我的 LINQ 查询结果集将其显示为正常的解码字符串“a”。我需要维护字符编码。
这是我到目前为止所做的事情,到目前为止还没有一个工作。
-
我已将 Unicode 属性设置为 true,如下面的链接所述。
EntityFramework update or insert Chinese or non-English text
-
我尝试在我的 ConnectionString 中设置 CharSet=utf8,如下面的链接中所述,我最终得到了错误。 “未知的连接字符串参数‘CharSet’”。我尝试了所有可能的组合(字符集、字符集等)。没有工作
当我使用 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 中按原样获取数据。任何帮助都会让我的生活更轻松。
【问题讨论】:
标签: c# entity-framework linq character-encoding