通过linq在sql server 2005中按字符串比较ntext
如何使用 linq 将 sql server 2005 中的 ntext 类型与 string 进行比较?
在 SQL Server 2005 中;
@a as ntext
C# 中的 linq;
string b;
var k=from p in DataContext.TableName
where p.a.toString()==b)
select p;
//return k=null
How can I compare ntext type in sql server 2005 to string with linq?
in sql server 2005;
@a as ntext
linq in c#;
string b;
var k=from p in DataContext.TableName
where p.a.toString()==b)
select p;
//return k=null
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
NTEXT 列无法进行比较。请参阅 MSDN 和 MSDN 论坛
如果您从事2005 或更高版本,将 NTEXT 转换为 NVARCHAR(MAX),正如其他人已经建议的那样。
NTEXT columns cannot be compared. See MSDN and MSDN Forum
If you work on 2005 or higher, convert NTEXT to NVARCHAR(MAX), as others have already suggested.
您可以使用 System.Data.Linq.SqlClient.SqlMethods 类的静态“Like”方法在 linq2sql 中执行此操作。
You can do this in linq2sql using the static "Like" method of the System.Data.Linq.SqlClient.SqlMethods class.
如果使用 linq2sql 那么你的伪代码是正确的 - 尽管你不需要使用 .ToString() 并且显然你需要匹配括号。
另外,正如评论中已经指出的,NVARCHAR(MAX) 现在是首选数据类型,而不是 NTEXT
If using linq2sql then your pseudocode is correct - although you won't need to use .ToString() and obviously you'd need to match the brackets.
Also, as already noted in the comments, NVARCHAR(MAX) is now the preferred data type instead of NTEXT