我正在使用LINQ to ENTITIES从SQL Server中提取数据,我试图从其中一个数据类型为NTEXT
的列中获取前255个字符。当我尝试时,我得到错误:
参数数据类型ntext对于len函数的参数1无效
产生错误的代码是:
Subject = (yt.Message.Length > 255) ? yt.Message.Substring(0, 255) : yt.Message
是否有一种简单的方法可以获得长度,以便我可以检查它或只获取NTEXT
列的前255个字符?
尝试执行yt.Message.ToString().Length
会产生同样的错误。
这是我正在使用的论坛软件的第三方数据库,因为我对该系统的工作原理一无所知,所以我希望不要改变任何架构。
答案 0 :(得分:0)
似乎没有办法在LINQ中执行此操作,但我最终做的是创建一个普通的LINQ查询来提取所有数据,然后在ViewModel中放入一个方法,返回我想要的字符数。 / p>
public string Subject
{
get
{
return (yt.Message.Length > 255) ? yt.Message.Substring(0, 255) : yt.Message
}
}
答案 1 :(得分:-1)
您需要使用视图。
CREATE VIEW MyView
AS
SELECT MyKey,
LEFT(CONVERT(NVARCHAR(MAX), MyValue), 255) AS MyValueSummary
FROM dbo.MyTable