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

本文关键字:255个 字符 字段 LINQ 获取 取文本 使用 | 更新日期: 2023-09-27 18:14:21

我正在使用LINQ到实体从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给出相同的错误。

这是我正在使用的论坛软件的第三方DB,因为我不知道该系统是如何工作的,我想远离改变任何模式。

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

在LINQ中似乎没有办法做到这一点,但我最终要做的是创建一个正常的LINQ查询来提取所有数据,然后在ViewModel中放置一个方法,返回我想要的字符数量。

public string Subject
    {
        get
        {
            return (yt.Message.Length > 255) ? yt.Message.Substring(0, 255) : yt.Message
        }
    }

你需要使用一个视图

CREATE VIEW MyView
AS
    SELECT  MyKey,
            LEFT(CONVERT(NVARCHAR(MAX), MyValue), 255) AS MyValueSummary
    FROM    dbo.MyTable