通过linq在sql server 2005中按字符串比较ntext

时间:2011-03-11 12:19:56

标签: c# sql linq sql-server-2005

如何将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

3 个答案:

答案 0 :(得分:1)

无法比较NTEXT列。请参阅MSDNMSDN 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