我有一个EF代码第一个数据库,用于填充初始表,我使用sql脚本(更容易处理和更新种子方法)。
问题是,脚本插入了没有特殊字符....
数据库排序规则为: SQL_Latin1_General_CP1_CI_AS
种子正在读这样的脚本:
context.Database.ExecuteSqlCommand(File.ReadAllText(baseDir + @"..\..\Scripts\Oficina.sql"));
脚本看起来像这样:
INSERT [dbo].[Oficina] ([IdOficina], [Nombre], [SISTEMA], [ORDEN]) VALUES (20, N'Comisión Admisión', 1, 5)
问题是,它被保存在数据库中:
Comisi�n Admisi�n
我不知道问题可能是什么.....任何想法?
答案 0 :(得分:0)
检查表定义以查看数据类型是varchar还是nvarchar。之前已经在网站上询问了这个问题。这是一个很好的解释:
答案 1 :(得分:0)
前几天我遇到了同样的问题
public static void ExecuteBatchFromFile(this DataContext dc, String fileName, String batchSeparator,
Encoding enc = null) {
if (enc == null)
enc = Encoding.UTF8;
String stSql = File.ReadAllLines(fileName, enc);
/* ... */
}
我通过在我的函数中添加enc参数来解决它。
问题是要正确阅读来源。排序规则不一定是存储编码,而是用于比较的编码。