首页 > 解决方案 > 如何在 Entity Framwowrk Core 中为代码优先方法创建一个新表

问题描述

最初我从下面的代码开始

public class ShareMyBlogPostContext : DbContext
{
   public ShareMyBlogPostContext(DbContextOptions<ShareMyBlogPostContext> options):base(options)
   {
   }

   public DbSet<User> Users { get; set; }
}

我运行以下命令来创建数据库表和迁移:

dotnet ef migrations add InitialDb
dotnet ef database update

但过了一段时间,我意识到我需要一个新实体,我更新了我的DbContext类,如下所示:

public class ShareMyBlogPostContext : DbContext
{
   public ShareMyBlogPostContext(DbContextOptions<ShareMyBlogPostContext> options) : base(options)
   { }

   public DbSet<User> Users { get; set; }
   public DbSet<Blog> Blogs { get; set; }
}

由于我刚刚开始项目并且表中的数据不多,因此从我的项目中删除数据库和文件夹中已经存在的表并重新执行上述命令Users对我来说并不是什么大任务。这样我就能够创建一个名为.UsersMigrationsBlogs

但是如何在DbContext不删除现有表和迁移的情况下创建新添加实体的新数据库表?因为这不会是每次的情况。

标签: c#entity-framework.net-core

解决方案


嗨,请输入此命令

dotnet ef migrations add AddBlogs
dotnet ef database update

更多信息请访问此页面

此外,如果你想保留你的表,你必须更改 migration.cs 文件手册来添加你的表和字段,然后运行这个命令

dotnet ef database update

推荐阅读