C# .net core 2.0实体框架-在数据库级别添加表关系并更新模型
我正在开发一个用实体框架实现.NETCore2.0的应用程序 我已经通过使用PackageManager控制台搭建现有数据库生成了模型 现在,我通过添加两个表之间缺少的关系手动编辑了数据库 更新模型的最佳方式是什么 在这一刻,我正在删除所有的模型文件,每次我都运行scaffolding命令 如何避免这种情况C# .net core 2.0实体框架-在数据库级别添加表关系并更新模型,c#,entity-framework,.net-core,C#,Entity Framework,.net Core,我正在开发一个用实体框架实现.NETCore2.0的应用程序 我已经通过使用PackageManager控制台搭建现有数据库生成了模型 现在,我通过添加两个表之间缺少的关系手动编辑了数据库 更新模型的最佳方式是什么 在这一刻,我正在删除所有的模型文件,每次我都运行scaffolding命令 如何避免这种情况 由于支持,您只需将缺少的虚拟字段添加到对象中即可 如果列具有匹配的名称,则可以直接添加它们: class Customer { public int CustomerId {get;
由于支持,您只需将缺少的虚拟字段添加到对象中即可 如果列具有匹配的名称,则可以直接添加它们:
class Customer {
public int CustomerId {get;set;} // PK that was already there
// new navigation property
public virtual ICollection<Account> Accounts { get; set; }
}
class Account {
public int AccountId {get;set;}
// new FK
public int CustomerId { get;set; }
// new navigation property
public virtual Customer Customer {get;set;}
}
如果同一个表中有多个FK,或者名称不匹配,则可能需要向DbContext上的OnModelCreating方法添加一些代码
更简单的方法是使用工具重新生成代码,并将旧代码与WinMerge等工具进行比较。EF Core比EF6简单得多,一旦你理解了这个想法,你就再也不用使用这些工具了。我手工编写所有实体的代码,我发现这比使用这些工具容易得多