Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .net core 2.0实体框架-在数据库级别添加表关系并更新模型_C#_Entity Framework_.net Core - Fatal编程技术网

C# .net core 2.0实体框架-在数据库级别添加表关系并更新模型

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;

我正在开发一个用实体框架实现.NETCore2.0的应用程序

我已经通过使用PackageManager控制台搭建现有数据库生成了模型

现在,我通过添加两个表之间缺少的关系手动编辑了数据库

更新模型的最佳方式是什么

在这一刻,我正在删除所有的模型文件,每次我都运行scaffolding命令

如何避免这种情况


由于支持,您只需将缺少的虚拟字段添加到对象中即可

如果列具有匹配的名称,则可以直接添加它们:

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简单得多,一旦你理解了这个想法,你就再也不用使用这些工具了。我手工编写所有实体的代码,我发现这比使用这些工具容易得多