1

エンティティ フレームワークを使用して 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")
4

0 に答える 0