C# 实体框架代码csv文件种子后第一个数据库丢失非英语字符
我正在使用C# 实体框架代码csv文件种子后第一个数据库丢失非英语字符,c#,sql-server,asp.net-mvc,entity-framework,entity-framework-migrations,C#,Sql Server,Asp.net Mvc,Entity Framework,Entity Framework Migrations,我正在使用Seed()函数从CSV文件填充数据库。然而,当我这样做时,我已经丢失了所有非英语字符。它们被替换为� 查尔 例如,在CSV文件中,我有“łódzkie”,在我的数据库中有“its”��dzkie”。 CSV使用UTF-8编码保存。在connectionString中,我已包括charset=utf8 下面是Seed()函数的一部分: Assembly assembly = Assembly.GetExecutingAssembly(); string resourceName = "
Seed()
函数从CSV文件填充数据库。然而,当我这样做时,我已经丢失了所有非英语字符。它们被替换为� 查尔
例如,在CSV文件中,我有“łódzkie”,在我的数据库中有“its”��dzkie”。
CSV使用UTF-8编码保存。在connectionString
中,我已包括charset=utf8
下面是Seed()函数的一部分:
Assembly assembly = Assembly.GetExecutingAssembly();
string resourceName = "FirstNames.csv";
using (Stream stream = assembly.GetManifestResourceStream(resourceName))
{
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
CsvReader csvReader = new CsvReader(reader);
csvReader.Configuration.MissingFieldFound = null;
csvReader.Configuration.HeaderValidated = null;
var firstNames = csvReader.GetRecords<FirstName>().ToArray();
context.FirstNames.AddOrUpdate(f => f.Name, firstNames);
}
}
Assembly=Assembly.getExecutionGassembly();
字符串resourceName=“FirstNames.csv”;
使用(Stream=assembly.GetManifestResourceStream(resourceName))
{
使用(StreamReader=newstreamreader(stream,Encoding.UTF8))
{
CsvReader CsvReader=新的CsvReader(读卡器);
csvReader.Configuration.MissingFieldFound=null;
csvReader.Configuration.HeaderValidated=null;
var firstNames=csvReader.GetRecords().ToArray();
context.FirstNames.AddOrUpdate(f=>f.Name,FirstNames);
}
}
Hi,如果可能的话,请提供csv文件?也许,这将有助于您尝试在其中插入数据的列的数据类型?@PajriAprilio这里是csv文件string
不是SQL Server数据类型。我想问题是数据是进入VARCHAR
还是NVARCHAR
列?