EF Core 2.0 - 无法将新列添加到特定表/类

时间:2018-04-20 09:25:57

标签: c# asp.net asp.net-core-2.0 ef-migrations ef-core-2.0

我们最近将ASP.Net项目升级到核心2.0(肯定包括EF Core 2.0)。到目前为止一切都在工作,我甚至用新的迁移等改变了DB中的一些表...一切正常......但是现在我有一个表,我必须在表的末尾添加一个简单的列“MenuReqRole”。 这是cfgPageMenuItems类:

[Key]
[MaxLength(10)]
public string MenuArea { get; set; }
[Key]
[Required]
public int MenuOrderId { get; set; }
[Required]
public string MenuHeaderEntry { get; set; }
[Required]
public string MenuDescription { get; set; }
[Required]
public string MenuClickLink { get; set; }
public string MenuImageLink { get; set; }
//the new field   
public string MenuReqRole { get; set; }

当我现在尝试在程序包管理器控制台中运行添加迁移时,它出错并显示以下消息:

Add-Migration MenuRoleAdjust2 -Context MyDbContext
fail: Microsoft.EntityFrameworkCore.Database.Command[20102]
      Failed executing DbCommand (3ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      SELECT [c].[MenuArea], [c].[MenuOrderId], [c].[MenuClickLink], [c].[MenuDescription], [c].[MenuHeaderEntry], [c].[MenuImageLink], [c].[MenuReqRole]
      FROM [cfgPageMenuItems] AS [c]
System.Data.SqlClient.SqlException (0x80131904): Invalid column name 'MenuReqRole'.
看起来它正试图在DB(??)上创建一个包含这个新列的sql语句...... 好的....只是为了确定 - 这是MyDbContextModelSnapshot.cs中的定义 - 定义中没有列MenuReqRole:

modelBuilder.Entity("MyApp.Config.cfgPageMenuItems", b =>
{
    b.Property<string>("MenuArea")
      .HasMaxLength(10);
    b.Property<int>("MenuOrderId");
    b.Property<string>("MenuClickLink")
      .IsRequired();
    b.Property<string>("MenuDescription")
      .IsRequired();
    b.Property<string>("MenuHeaderEntry")
      .IsRequired();
    b.Property<string>("MenuImageLink");
    b.HasKey("MenuArea", "MenuOrderId");
    b.ToTable("cfgPageMenuItems");
});

我很困惑 - 因为这只发生在这一张桌子上(直到现在)。任何人都知道这可能导致EF惊慌失措吗?任何帮助表示赞赏!!!!

谢谢, Jan

0 个答案:

没有答案