PM scaffold-dbcontext不创建主键

问题描述 投票:3回答:1

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

虽然我在数据库中添加了一个主键,但是当它不起作用时,我什至添加了另一个索引:

enter image description here

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

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

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

InvalidOperationException:实体类型'DealerDisclaimers'需要定义一个主键。

scaffold-dbcontext构建的DealerDisclaimers类看起来像这样:

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命令应该为我准备一切。

sql-server visual-studio entity-framework
1个回答
0
投票

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

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

Scaffold-DbContext "Server=MyServer;Database=MyDatabase;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -Force -DataAnnotations
© www.soinside.com 2019 - 2024. All rights reserved.