代码首先在西里尔语中播种数据
我使用种子方法来填充数据库。 一些对象具有西里尔字母的属性。 例:
context.Wines.AddOrUpdate(new Wine() { Id = 1, Name = "Шардоне", etc........................................
这些对象在数据库中正确创建,但是当我在MS SQL管理工作室中检查数据库而不是葡萄酒的名称为“Шардоне”时,它显示为“Øàðäîíå”。
奇怪的是,当我在Startup类中创建葡萄酒时,如下所示:
var db = new WineSystemDbContext(); var ShardoneWine = new Wine { Name = "Шардоне}; db.Wines.Add(ShardoneWine);
一切都在数据库中以西里尔文显示。
你知道可能导致这种情况的原因吗?
您可以在连接字符串中指定connectin的字符集。 只需将此部分添加到您的连接:
charset=UTF8;
如果没有结果,您可以尝试更改Configuration.cs文件的char-set。 有两种方法可以做到这一点。
- 在Visual Studio编辑器中关闭Configuration.cs,然后在解决方案资源管理器中右键单击该文件并选择“打开方式…” – >“带编码的CSharp编辑器”,并从列表中选择“Unicode(带签名的UTF-8) – 代码页65001“选项(如果此代码页会显示一些’中文’符号,请尝试其他代码页)。 现在修复您的cyrilic章节并保存Configuration.cs文件。
- 选择“文件” – >“高级保存选项”并使用UTF-8编码种子数据的方法保存文件。
如果使用ntext列类型,也可能会出现问题。
为了存储例如西里尔字符,它们必须是nvarchar(x)
至少从我的经验来看。
我已经看到了同样的现象:使用varchar(100)
数据进展顺利但出来了???
– 但是对于nvarchar(100)
一切似乎都很好。
在您的查询中需要添加de N (告诉SQL Server它是unicode) ,例如:
SELECT * FROM Wines WHERE someColumn = N'sometext'
我找到了解决方案!
这是我做的(在另一个主题中找到)
在解决方案资源管理器中打开您的Configuration.cs文件,复制Seed方法并在Windows记事本中粘贴代码(暂时)。
“如果打开Visual Studio,请在Visual Studio中关闭Configuration.cs,然后在解决方案资源管理器中右键单击该文件并选择”打开方式…“ – >”带编码的CSharp编辑器“,然后从列表中选择”Unicode( UTF-8带签名) – 代码页65001“选项(尝试不同的选项,当这个会显示一些’中国’字符)。
用记事本替换种子方法。 保存,删除数据库和Update-Databse中的现有数据。 您的国家/地区字符现在可以正确显示。
干杯。”
感谢大家的帮助
我得到了以下帮助:选择“文件” – >“高级保存选项”并使用UNICODE(带签名的UTF-8)编码和行结尾 – 当前设置对数据进行种子设定的方法保存文件。
上述就是C#学习教程:代码首先在西里尔语中播种数据分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/955922.html