向数据库添加新表后如何更新 Entity Framework Core

Posted

技术标签:

【中文标题】向数据库添加新表后如何更新 Entity Framework Core【英文标题】:How to update Entity Framework Core after adding a new table to the database 【发布时间】:2019-09-28 22:47:57 【问题描述】:

https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/existing-db?toc=/aspnet/core/toc.json&bc=/aspnet/core/breadcrumb/toc.json&view=aspnetcore-2.2

我已按照上面的说明进行操作,并且可以正常工作。我有数据库和 C# 代码。

下一个阶段是我添加一个名为 test 的新表

表:测试 列:Testid (int), testname (nvarchar(50))

此测试表已添加到数据库中。

代码

Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

使您能够从头开始创建类及其数据成员,但这次我添加了一个新表。

代码

Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

当我添加了一个新表时,它在维护方面不起作用。

主要问题:

我应该使用 PowerShell 中的哪些代码或类似代码来更新与 Entity Framework Core 相关的当前 C# 代码?

我需要为 VS 解决方案中的“测试”表提供 c# 代码。

谢谢!

【问题讨论】:

指定-强制重新创建文件 您的意思是“add-Force makePostTabale”还是包管理器控制台中的其他代码? 不,只是 -Force - 阅读文档! 谷歌搜索时找不到有关“-Force”的信息,您是否有指向“-force”的链接以获取详细文档?谢谢! docs.microsoft.com/en-us/ef/core/miscellaneous/cli/… 【参考方案1】:

首先你需要为一个表创建类,像这样:

class Post
    
        public int PostId  get; set; 
        public string Content  get; set; 
        public string Title  get; set; 
    

其次,在你的上下文模型中添加类名,像这样

class BloggingContext : DbContext

    public virtual DbSet<Post> Post  get; set; 

第三,在控制台或包管理器中,您必须进行迁移,

add-migration makePostTabale

然后更新数据库:

Update-Database

【讨论】:

感谢您的帮助!如果你在SQL server中添加了一个新表,而不是在VS 2017中,应该使用什么方法? 您可以使用.Net Core CLI(命令行界面)。使用dotnet ef migrations add makePostTabale 进行迁移,使用dotnet ef database update 从迁移中更新数据库。欲了解更多信息,请参阅MS Doc Migrations【参考方案2】:

试试这个 cmd:

Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir 模型 -Force

【讨论】:

以上是关于向数据库添加新表后如何更新 Entity Framework Core的主要内容,如果未能解决你的问题,请参考以下文章

如何向 NOPCommerce v2.4 添加新表

使用 React 加载新表后使用新数据更新 ag-grid

关于oracle 多表关联更新的问题

在更改数据库表后更新模型类

Entity Framework Core 中的动态数据模型

插入触发器 SQL。插入新表后如何从另一个表中检索值