エンティティ フレームワークを使用して varbinary 列「データ」を作成しようとすると、データを次のように定義してコードを最初に作成します。
Public Property Data() As Byte()
問題は、プログラムを実行すると、このテーブル用に生成されたスクリプトが varbinary の長さを指定しないため、明らかに実行が中断され、mysql サーバーから構文エラーが返されることです。
CREATE TABLE `TestAction`(
`ID` int NOT NULL AUTO_INCREMENT PRIMARY KEY,
`Name` mediumtext NOT NULL,
`Data` varbinary,
`Tested` datetime NOT NULL,
`TestID` int NOT NULL);
私はすでにバイト配列を開始しようとし、最大長属性をプロパティに追加しましたが、成功しませんでした。誰もこれを成功させましたか?またはそれを助けることができます
答え - -
流暢な API を使用してエンティティ フレームワークに byte() を varbinary にキャストさせ、関連付けられた EntityTypeConfiguration クラスで最大長を設定することで、これを解決することができました。前に似たようなことを試しましたが、長さを HasColumnType() メソッドの型名と組み合わせて ...HasColumnType("varbinary(45) のようにしましたが、うまくいきませんでした。しかし、以下のコード行は私の問題を解決しました。
[Property](Function(P) P.Name).IsRequired().HasMaxLength(45).HasColumnType("varbinary")