列重新映射意外地更改了EF Core中的数据库架构

时间:2017-11-09 03:20:45

标签: c# entity-framework entity-framework-core

我有一个数据库列“completedcomments”,所以EF模型有这个:

    public string Completedcomments { get; set; }

此列中的信息必须作为“completionComments”提供,因此我认为这可以通过column remapping annotation完成。 我改变了我的EF模型,看起来像这样:

    [Column("completedcomments")]
    public string completionComments { get; set; }

我不确定列重新映射是否需要迁移才能生效,所以我做了一个以防万一。令我惊讶的是,迁移删除了我的“completedcomments”列,并在数据库中添加了“completionComments”列。

这不是我想要发生的事情(我将不得不进行恢复以从该列恢复我的测试数据)。如果这不是列重映射的作用,我如何将列“completedcomments”中的内容作为“completionComments”提供?这是我应该在控制器中做的事情,如果是这样,列重新映射的重点是什么?

1 个答案:

答案 0 :(得分:0)

我发现了我的错误,它出现在Context文件中:

我有:

entity.Property(e => e.completionComments).HasColumnName("completionComments");

应该是:

entity.Property(e => e.completionComments).HasColumnName("completedcomments");

Context文件中的错误导致架构更改。没有错误,列重新映射就像人们想象的那样,并且正如Jasen的评论所解释的那样。

重新映射不需要迁移。