私はEF 6.1.3を使用しています。コードを使用すると、最初にエンティティのbyte[]
プロパティがmaxに設定されます。 8000バイト。それを大きくする試み、つまりMAXは失敗します。最初に8000バイトを超えるコードにEF byte []を指定する方法はありますか?
HasMaxLength(null)
は(?はい、パラメータはintです)、まだ、8000に設定しますHasMaxLength(int.MaxValue)
または8000より大きい他の値はEFスローSystem.Data.Entity.Core.MetadataException
ます:
は、指定されたスキーマが有効ではありません。エラー:(0,0):エラー0026:MaxLength '2147483647'は無効です。 'varbinary'型の場合、長さは '1'から '8000'の間でなければなりません。
SQLサーバー13.0.2151(mssqllocaldb)varbinary型(最大)が可能になります:
この制限は、私にはあまりにも厳しいようです。それが課されている理由を見つけようとすると、これにも正当な理由はありません。だから、私の質問は
どのようにbyte []を最初にEFコードでvarbinary(max)にマップできるのですか?
PS:プロパティも「必要」ですが、オプションのプロパティがいずれかのvarbinary(MAX)に設定することができる場合、私はわかりません。とにかく、私にはあまり意味がないので、このケースをテストしていません。
プロパティの長さが最大長ではない場合は、「HasMaxLength」を呼び出さないようにすることが推奨されますが、違いはありません。あなたはそれをチェックしたいと思うかもしれませんが、実際にうまくいかない場合は、あなたの質問にそれを含めてください。 – hvd
長さを指定せずに8001バイトを保存することをお勧めしますか?私には意味がありません。 –
Eh?列に最大長があり、列が最大長を持たないことを期待しているとは言えませんが、私には意味があります。あなたは長さを指定していません。最大長を指定していますが、これは不要です。 – hvd