向数据库添加新表后如何更新 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的主要内容,如果未能解决你的问题,请参考以下文章