PM scaffold-dbcontext没有创建主键

时间:2017-09-05 02:36:40

标签: sql-server visual-studio entity-framework

我正在逆向工程我们的数据库。我在包管理器控制台中使用了带有-force标志的scaffold-dbcontext。我肯定知道它正在更新文件。

我在数据库中添加了一个主键,但是当它没有工作时我甚至添加了另一个索引:

enter image description here

创建的dbcontext似乎具有主键的代码:

modelBuilder.Entity<DealerDisclaimers>(entity =>
    {
        entity.HasKey(e => e.DealerDisclaimerId)
            .HasName("PK_DealerDisclaimers");

但是,当我尝试导航到会加载该表的页面时,会出现以下错误:

  

InvalidOperationException:实体类型&#39; DealerDisclaimers&#39;   需要定义主键。

DeoldDisclaimers类的scaffold-dbcontext构建如下:

public partial class DealerDisclaimers
    {
        public int DealerDisclaimerId { get; set; }
        public int DealerId { get; set; }
        public string GeneralDisclaimer { get; set; }
        public string LeaseDisclaimer { get; set; }

        public virtual Dealer Dealer { get; set; }
    }

附注:如果我添加[Key]属性,则加载时不会出现错误。但是我不必手动添加它,scaffold-dbcontext命令应该为我准备好一切。

1 个答案:

答案 0 :(得分:0)

只需在脚手架代码中添加-DataAnnotations,即可为我添加相应的密钥。

所以我的脚本看起来像这样:

Scaffold-DbContext "Server=MyServer;Database=MyDatabase;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -Force -DataAnnotations