質問: 長さを制限するために、テキストフィールドの`MaxLength`をEFの流暢なapiで4096と指定しました: ``` this.Property(p => p.MyText).HasMaxLength(4096).IsRequired(); ``` しかし、SQL Serverの何らかの理由で列が`nvarchar (max)`ます。 テストのために2048を指定してSQL Serverが更新されていることを確認したら ``` this.Property(p => p.MyText).HasMaxLength(2048).IsRequired(); ``` そして、このように、それは働く。 `MaxLength(4096)`指定すると、なぜEFがsql `nvarchar (max)`設定するのか、
回答: 私はそれがSQL Serverの限界だと思う。 msdnは言う > 可変長Unicode文字列データ。 nが文字列の長さを定義し**、4,000**を介して1からの値とすることができます。 > >