如何将sql server 2005中的ntext类型与linq的字符串进行比较?
在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
答案 0 :(得分:1)
无法比较NTEXT列。请参阅MSDN和MSDN Forum
如果您使用2005或更高版本,请将NTEXT转换为NVARCHAR(MAX),正如其他人已经建议的那样。
答案 1 :(得分:1)
您可以使用System.Data.Linq.SqlClient.SqlMethods类的静态“Like”方法在linq2sql中执行此操作。
string b;
var k=from p in DataContext.TableName
where System.Data.Linq.SqlClient.SqlMethods.Like(p.a, b)
select p;
答案 2 :(得分:0)
如果使用linq2sql,那么你的伪代码是正确的 - 虽然你不需要使用.ToString(),显然你需要匹配括号。
另外,正如评论中已经提到的,NVARCHAR(MAX)现在是首选的数据类型而不是NTEXT