删除 N 个字符(非 Unicode 支持)

Posted

技术标签:

【中文标题】删除 N 个字符(非 Unicode 支持)【英文标题】:Remove N Character (non Unicode support) 【发布时间】:2013-09-25 13:08:16 【问题描述】:

我使用的是 EF 4.1 Code First。 EF 为 IN 子句生成查询是:

SELECT Column1
FROM Table1 
WHERE Column1 IN (N'ABC',N'XYZ', N'DEF')

IN子句是使用List.Contains()方法生成的。

有什么方法可以让我从 in 子句中删除 unicode 值(N 字符)? 所以查询应该看起来像

SELECT Column1
FROM Table1 
WHERE Column1 IN ('ABC','XYZ', 'DEF')

感谢您提供这方面的任何帮助。

注意:我已经指定了 DB 中提到的所有列类型。

【问题讨论】:

EF 4 produces UNICODE string constans in SQL where the column type is varchar. How to avoid? 的可能副本 摘要:这是 EF 4.1 中的一个错误,已在更高版本中修复(虽然不知道是哪一个)。 【参考方案1】:

我能够将 unicode 字符串列表转换为非 unicode 字符串。

【讨论】:

【参考方案2】:

我不确定,但是..

    检查 EF 模型(Unicode 属性)上的 Column1 类型以设置为 假的。 请确保不要应用任何字符串函数,如“Trim”或类似的smthng。这会将您的 db 值转换为 unicode 字符串。

【讨论】:

以上是关于删除 N 个字符(非 Unicode 支持)的主要内容,如果未能解决你的问题,请参考以下文章

GUI:如何确定是不是支持某些 Unicode 字符?

char nchar varchar nvarchar varchar2区别

uGUI 文本字段,如何删除“替换字符”(uFFFD aka �)?

SQL 中 unicode字符和非unicode字符的区别

laravel 5.4 运行 make:auth 报错

SQL server的数据类型