在使用 EF6 模型的 WEB API 中,如何限制返回的 VARCHAR(MAX) 列的长度

In WEB API with EF6 models, how do I limit the length of a VARCHAR(MAX) column returned

我有一个用户今年将无法更新他们的客户端。我的专栏之一是 VARCHAR(MAX),当它包含超过 250 个字符时,他们当前的客户会在该字段上窒息。由于他们是使用此端点的唯一授权客户端,我想减轻他们的痛苦,只需将列截断为 250 个字符。这是一个只读端点,因此我不必处理更新。

我认为这是部分 类 的好地方 - 也许可以这样做:

  public partial class Equipment_Detail
  {   
    public string note
    {
        get
        {
            return left(note, 250);
        }
        set { }
    }
  }

但它与现有定义冲突。我知道我在这里遗漏了一些非常基础的东西,但我每年只使用 .NET 一次。

DTO 是个好主意,但是我的控制器中有所有 .Include()(此时我的模型相当复杂),我想我找到了一个更简单的解决方案:

  1. 将设计器中的列从 'note' 重命名为 'fullnote' 并将其设为私有
  2. 在部分 class 中,创建一个注释字段并使用私有 fullnote,必要时截断:

    public string note
    {
        get
        {
            string _note = fullnote;
            if (!String.IsNullOrEmpty(_note))
            {
                if (_note.Length > 250)
                {
                    _note = _note.Substring(0, 250);
                }
            }
            return _note;
        }
        set { }
    }