如何使用EF将UTF-8字符插入Text数据类型到SQL Server?

时间:2019-02-01 07:48:05

标签: c# sql-server asp.net-mvc entity-framework utf-8

我想将utf-8 char插入SQL Server,但是如果数据类型文本输出为??????????????????????,则对所有数据类型都有效,但不起作用文本数据类型

表结构:

enter image description here

C#代码:

news.System_Date = DateTime.Now;
            news.Staff = Base_Tables.Current_User.ID;
            db.News.Add(news);
            db.SaveChanges();
  

如果不使用EF设置N个字符,但我在EF中不知道

2 个答案:

答案 0 :(得分:1)

text是一种“每个字符一个字节”的数据类型,您不了解Unicode。您需要改用nvarchar(max),就像标题和副标题一样。

  • “ n”前缀表示可以理解Unicode。
  • 并使用nvarchar(max)(如果您不希望使用Unicode,也可以使用varchar(max)而不是text,因为不推荐使用文本

答案 1 :(得分:0)

打开您的edmx文件,选择出现问题的映射到NVARCHAR列的实体列,然后转到其属性。

Unicode属性设置为True

![enter image description here

然后确保在C#上生成行时并使用可以处理unicode以查看数据库中数据的体面客户端正确分配值(该行可能存储正确,并且客户端可能无法以正确的编码显示它。