使用SQL脚本的EF种子不会插入特殊字符

时间:2014-12-19 15:24:34

标签: sql-server entity-framework

我有一个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

我不知道问题可能是什么.....任何想法?

2 个答案:

答案 0 :(得分:0)

检查表定义以查看数据类型是varchar还是nvarchar。之前已经在网站上询问了这个问题。这是一个很好的解释:

Which special characters are allowed?

答案 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参数来解决它。

问题是要正确阅读来源。排序规则不一定是存储编码,而是用于比较的编码。