使用LINQ to Entities获取前255个字符的文本字段?

时间:2014-07-23 00:06:00

标签: c# linq entity-framework

我正在使用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会产生同样的错误。

这是我正在使用的论坛软件的第三方数据库,因为我对该系统的工作原理一无所知,所以我希望不要改变任何架构。

2 个答案:

答案 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