删除 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 支持)的主要内容,如果未能解决你的问题,请参考以下文章
char nchar varchar nvarchar varchar2区别