带有EF的西里尔字母问题

本文关键字:问题 EF 带有 | 更新日期: 2023-09-27 17:58:48

我有一个应用程序,它对mysql使用带有.NET连接器6.8.3的EF 5,对visual studio 1.1.3使用带有排序规则utf8的colloms的表。问题是,当我的实体具有带有循环字符(如пешо, пешо)的属性时,当我调用dbContext.SaveChanges()时,发送的查询是:

140417 11:20:59    23 Init DB   applicantsdb
           23 Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
           23 Query BEGIN
           23 Query UPDATE `Applicants` SET `Note`='????, ????' WHERE `Id` = 10
           23 Query COMMIT

我仔细检查了实体,就在SaveChanges()之前,没有问题(它们的属性带有循环字符)。

从工作台执行查询

UPDATE `Applicants` SET `Note`='пешо, пешо' WHERE `Id` = 10  

同样没有问题(我可以在数据库中看到带有cyrilic的注释),当我调用dbContext.Applicants.ToList()时,我确实得到了带有cyrilac字符的实体。有人能帮我吗?

带有EF的西里尔字母问题

由于您使用mysql。。。

只需将Charset配置添加到您的连接字符串:

<add name="Entities" connectionString=".....; Charset=utf8;" providerName="System.Data.EntityClient" />

https://www.connectionstrings.com/mysql-connector-odbc-3-51/specifying-character-set/