efcore coderfirst 生成数据库

使用 Entity Framework Core 的 Code First 方法开发时,你可以根据定义的实体模型和 DbContext 类自动生成数据库和表结构。下面的步骤将指导你如何使用 EF Core Code First 来生成数据库。

1. 安装必要的 NuGet 包

首先,确保已经安装了 Entity Framework Core 和对应数据库提供程序的 NuGet 包。以 SQL Server 为例,你可以通过 Visual Studio 的包管理器控制台或者 .NET CLI 安装以下包:

dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools

2. 定义实体类和 DbContext

接着,定义你的实体类以及继承自 DbContext 的上下文类。例如,为一个博客平台定义 Blog 实体和 BloggingContext 上下文:

using Microsoft.EntityFrameworkCore;

namespace BubbleSort;

public class BloggingContext:DbContext
{
    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer(@"Server=.;Database=blogs;uid=sa;pwd=peng@123");
    }
}
public class Blog
{
    public int BlogId { get; set; }
    public string Name { get; set; }
    // virtual修饰符允许EF通过代理来实现延迟加载
    public virtual ICollection<Post> Posts { get; set; }
}
public class Post
{
    public int PostId { get; set; }
    public string Title { get; set; }
    public string Content { get; set; }
    public int BlogId { get; set; }
    
    // virtual修饰符允许EF通过代理来实现延迟加载
    public virtual Blog Blog { get; set; }
}

3. 创建初始迁移

使用迁移来创建或更新数据库是推荐的方式。在项目目录中打开终端或者包管理器控制台,然后运行以下命令以添加初始迁移:

dotnet ef migrations add InitialCreate

或者,在包管理器控制台使用:

Add-Migration InitialCreate

这会生成一些迁移代码,其中包含用于创建数据库和表的命令。

4. 更新数据库

最后,通过应用迁移来创建或更新数据库。在终端或包管理器控制台中运行以下命令:

dotnet ef database update

或者,在包管理器控制台使用:

Update-Database

生成数据库如下:(导航属性会生成外键)
在这里插入图片描述

该命令会根据迁移中的指令创建数据库和表结构。

注意

  • 在项目开发初期,你可能会频繁地修改实体类。每次修改后,你需要添加新的迁移来记录这些变化(使用 dotnet ef migrations add 命令)并更新数据库(使用 dotnet ef database update 命令)。
  • 如果你想撤销迁移或重置数据库,可以使用 dotnet ef database drop 命令删除数据库,然后运行 dotnet ef database update 创建一个新的。
  • 确保数据库连接字符串是正确的,否则 EF Core 将无法连接到数据库服务器创建数据库。

使用 EF Core Code First 方法创建数据库不仅可以提高开发效率,还能帮助你在实体类和数据库之间保持同步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值