使用C# .NET Core 3.1和EF Core Model-First方法生成数据库表的详细步骤,并介绍EF Core数据库迁移常用命令。
使用C# .NET Core 3.1和EF Core的Model-First方法生成数据库表
1. 安装EF Core包
首先,在你的项目中安装EF Core和相关的工具包。可以使用NuGet包管理器或者命令行来安装:
安装SqlServer与.NET Core 3.1兼容的版本:
使用以下命令安装兼容的版本,比如3.1.3:
dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 3.1.3
安装MySql与.NET Core 3.1兼容的版本:
使用以下命令安装兼容的版本,比如3.1.3:
使用以下命令安装Pomelo.EntityFrameworkCore.MySql
包,这个包提供了对MySQL的支持:
dotnet add package Pomelo.EntityFrameworkCore.MySql --version 3.1.2
安装Entity Framework Core的主包和工具包:dotnet add package Microsoft.EntityFrameworkCore --version 3.1.3
dotnet add package Microsoft.EntityFrameworkCore.Tools --version 3.1.3
2. 创建数据模型
在你的项目中,你已经创建了数据模型类,这些类位于NewsEntity
项目的Models
文件夹中。
3. 配置数据上下文
创建一个继承自DbContext
的数据上下文类,例如NewsContext.cs
,但必须先创建模型类哦!并在其中配置每个实体映射到数据库表。你可以在NewsContext.cs
中看到类似的内容
复制代码
using Microsoft.EntityFrameworkCore;namespace NewsEntity.Models
{public class NewsContext : DbContext{public DbSet<Adminlogin> Adminlogins { get; set; }public DbSet<BannerManager> BannerManagers { get; set; }public DbSet<NewInfo> NewInfos { get; set; }public DbSet<News> News { get; set; }public DbSet<NewsType> NewsTypes { get; set; }protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){optionsBuilder.UseSqlServer("Your_Connection_String_Here");}}
}
4. 添加数据库迁移
运行以下命令以创建数据库迁移:
dotnet ef migrations add InitialCreate
这将会在你的项目中创建一个新的迁移文件,其中包含将要应用到数据库的变更。
5. 应用数据库迁移
运行以下命令以将迁移应用到数据库:
dotnet ef database update
这将会在你的数据库中创建相应的表结构。
6. 验证数据库
验证数据库是否成功创建了你定义的表结构。你可以使用SQL Server Management Studio(SSMS)或者其他数据库管理工具来检查数据库中的表结构。
EF Core 数据库迁移常用命令
-
添加迁移:
- 命令:
dotnet ef migrations add MigrationName
- 用途:创建一个新的数据库迁移,基于你的数据模型生成变更文件。
- 命令:
-
应用迁移:
- 命令:
dotnet ef database update
- 用途:将迁移应用到数据库,将数据模型的更改同步到数据库中。
- 命令:
-
回滚迁移:
- 命令:
dotnet ef migrations remove
- 用途:删除最后一个迁移文件,并撤销数据库中对应的更改。
- 命令:
-
查看迁移列表:
- 命令:
dotnet ef migrations list
- 用途:查看已经应用的迁移列表及其状态。
- 命令:
-
生成SQL脚本:
- 命令:
dotnet ef migrations script
- 用途:生成一个SQL脚本,包含将要应用到数据库的所有变更。
- 命令:
通过以上步骤和命令,你可以使用Model-First方法生成数据库表,并有效管理数据库迁移。希望这能帮助使用C# .NET Core 3.1和EF Core进行Model-First数据库开发的博客文章。