为何选择数据库Dropcolumn实体框架?

时间:2017-12-08 08:52:44

标签: c# database model-view-controller entity

我正在尝试将图像添加到我的在线网上商店的数据库中(我希望产品的所有详细信息都在我的数据库中,以便我可以在几个地方使用数据 - 我正在尝试遵循DRY-原理)。首先,我尝试使用" Add-Migration Image"。但它会删除图像的线条。这是为什么?

这是我的total: 23实体:

Product

这里发生了。数据库首先获取新行而不是删除它们。这是为什么?我该怎么办?

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; }
}

最后,我希望能够在Create-Edit-Delete-Views中添加图像。

这是我的过程:

  1. 首先使用Image-rows更新数据库。
  2. 更改控制器和视图,以便他们可以处理图像。
  3. 见上文。

1 个答案:

答案 0 :(得分:0)

您的迁移包含两个部分,向上和向下。

Up是将新更改添加到数据库的部分。

down 部分是用于撤消这些更改的部分。因此,如果要回滚迁移,则会调用 down 方法。从逻辑上讲,回滚意味着删除新添加的列。

只要您不回滚到以前的版本,就不会调用 down 方法。