EF的西里尔问题

时间:2014-04-17 09:57:40

标签: c# mysql entity-framework

我有一个应用程序,它使用EF 5与.NET连接器6.8.3 for mysql和mysql for visual studio 1.1.3我有一个表,其中包含collat​​ion utf8的列。问题是,当我调用пешо, пешо发送的查询时,我的实体具有包含cyrilic字符的属性,例如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()之前检查了实体,没有任何问题(它们的属性具有cyrilic字符)。

从工作台执行查询

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

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

1 个答案:

答案 0 :(得分:2)

因为你使用mysql ...

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

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

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