我正在逆向工程我们的数据库。我在包管理器控制台中使用了带有-force标志的scaffold-dbcontext。我肯定知道它正在更新文件。
我在数据库中添加了一个主键,但是当它没有工作时我甚至添加了另一个索引:
创建的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命令应该为我准备好一切。
答案 0 :(得分:0)
只需在脚手架代码中添加-DataAnnotations
,即可为我添加相应的密钥。
所以我的脚本看起来像这样:
Scaffold-DbContext "Server=MyServer;Database=MyDatabase;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -Force -DataAnnotations