2016-07-06 3 views
0

今年はクライアントを更新できないユーザーがいます。私の列の1つはVARCHAR(MAX)で、現在のクライアントは250文字以上の文字列を含んでいるときにそのフィールドでチョークします。彼らはこのエンドポイントを使用している唯一の許可されたクライアントなので、私はその痛みを和らげ、250文字で列を切り捨てたいと思います。これは読み取り専用のエンドポイントなので、更新を処理する必要はありません。EF6モデルのWEB APIで返されるVARCHAR(MAX)列の長さを制限する方法

私は、これは部分クラスのために良い場所でしょう考えていた - 多分これを行うことができます:

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

を、それは既存の定義と矛盾します。私はここで何か非常に基本的なものが欠けていることを知っていますが、.NETを1年に1回しか使用しません

+0

どのようなエラーが表示されますか? –

+0

タイプ '... Equipment_Detail'には既に 'note'の定義が含まれています。自動生成モデルにはそのフィールドが既にあります。私は戻り時にフィールドのサイズを制限したいだけです。 –

+0

なぜDTOを返さないのですか? –

答えて

1

のDTO素晴らしいアイデアですが、私のコントローラ内のすべての.Include()で(私のモデルは、この時点で非常に複雑です)、私は簡単な解決策を見つけたと思う:」からデザイナで列の名前を変更

    1. fullnote 『「』に注意し、部分クラスでもプライベート Visual Studio properties screen shot
    2. を行い、メモフィールドを作成し、プライベートfullnoteを使用して、必要に応じて切り詰める:

      public string note 
      { 
          get 
          { 
           string _note = fullnote; 
           if (!String.IsNullOrEmpty(_note)) 
           { 
            if (_note.Length > 250) 
            { 
             _note = _note.Substring(0, 250); 
            } 
           } 
           return _note; 
          } 
          set { } 
      } 
      
  • 関連する問題