【问题标题】:EntityFramework update or insert Chinese or non-English textEntityFramework 更新或插入中文或非英文文本
【发布时间】:2012-09-19 21:07:12
【问题描述】:

其实在我没有使用framework或者linq之前,只要用Sqlcommand类输入sql语句,我输入insert into table values(N'sample') 其实我不知道N是什么,但它适用于中文和其他语言,否则它会插入一些问号。

但是当我使用EntityFramework时,这种框架总是插入一些问号,请​​问如何解决这个问题。

N 表示 Unicode? 你能给我举个例子,EntityFramework 使用这种东西吗?

【问题讨论】:

  • 顺便说一句,我用希伯来语测试了 EF,它工作得很好。 unicode中是否包含中文?
  • 这可能取决于数据库的外观。如果您使用的是 SQL Server - 您的列是 nvarchar 还是 nchar?在 EF 中,字符串属性需要将 Unicode 设置为 true。您是先使用 CodeFirst 还是先使用数据库/模型?
  • 您需要提供有关您的映射和数据库的更多信息。

标签: c# asp.net entity-framework


【解决方案1】:

我对尼泊尔语有完全相同的问题。我必须将 sql server 列的数据类型从 varchar 转换为 nvarchar,然后在实体框架映射中刷新我的 *.edmx 文件。然后效果很好。

varchar(255) => nvarchar(255)

varchar(MAX) => nvarchar(MAX)

右键单击 edmx 文件中的该表映射并刷新。保存更改。

【讨论】:

  • 这对我有用,我将类型从 varchar 更改为 nvarchar 并更新了实体。
【解决方案2】:

我们只是将数据类型更改为 nchar() 或 nvarchar 并且它起作用了。它能够以除英语以外的任何语言存储数据。

【讨论】:

    【解决方案3】:
    1. 在 .edmx 表中,选择列 -> 检查其属性并将 unicode 设置为 true
    2. 如果您在 Code First Apporach 中工作,请重新生成表
    3. 检查您的数据库表,它应该是 nvarchar 或 ntext 数据类型

    这样 EF 将保存 unicode 字符。

    【讨论】:

    • 这解决了我的问题......来自“????”文本到真正的工作字符串谢谢
    【解决方案4】:

    请确保您在装有中文 sqlserver 的服务器上安装了语言包。

    【讨论】:

      猜你喜欢
      • 2021-10-19
      • 1970-01-01
      • 1970-01-01
      • 2019-07-09
      • 2015-10-20
      • 2016-11-21
      • 1970-01-01
      • 1970-01-01
      • 2017-03-07
      相关资源
      最近更新 更多