オンラインWebショップのデータベースに画像を追加しようとしています(私のデータベースに製品の詳細がすべて欲しいので、いくつかの場所でデータを使用することができます - 私はDRY原理)。最初に「Add-Migration Image」を試しました。しかし、それは画像とともに線を落とす。何故ですか?なぜデータベースDropcolumn Entity Frameworkですか?
ここpublic class Product
{
[Key]
public int ProductID { get; set; }
[Required(ErrorMessage = "Please enter an product name")]
public string Name { get; set; }
[Required(ErrorMessage = "Please specify a category")]
public string Category { get; set; }
public string SubCategory { get; set; }
[Required(ErrorMessage = "Please enter a description")]
public string Description { get; set; }
[Required
(ErrorMessage = "Please enter a positive price")]
public decimal Price { get; set; }
public byte[] Image { get; set; }
public string ImageSourceFileName { get; set; }
public string ImageContentType { get; set; }
}
それを実現した
は、ここに私のProduct
エンティティです。データベースは最初に新しい行をドロップします。何故ですか?そして私はどうしたら違うのでしょうか?
public partial class Image2 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<byte[]>(
name: "Image",
table: "Products",
type: "varbinary(max)",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "ImageContentType",
table: "Products",
type: "nvarchar(max)",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "ImageSourceFileName",
table: "Products",
type: "nvarchar(max)",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "Image",
table: "Products");
migrationBuilder.DropColumn(
name: "ImageContentType",
table: "Products");
migrationBuilder.DropColumn(
name: "ImageSourceFileName",
table: "Products");
}
}
最終的に、私はCreate-Edit-Delete-Viewsで画像を追加したいと思っています。
これが私のプロセスです:
- 第1の画像列でデータベースを更新します。
- コントローラーとビューを変更して、イメージを処理できるようにします。
上記を参照してください。
ありがとうございました!私は見る - しかし、私はどうすれば変更を行うのですか?私はコンソールで "Add-Migration Image"を使用しました。 – dodido
私はこれについてもう少し考えました。 「Add-Migration Image」にロールバックコールがありますか?私はそれを見ませんか? – dodido
'update-Database -TargetMigration:" OldVersion "のような古いバージョンに移行する場合にのみ、ロールバックを行います。 'Down'メソッドは、プログラムのインストール時にPC上に置かれた_uninstall_ファイルと考えることができます。プログラムを削除するまで、それらを使用することはありません。 – oerkelens