EF Core是一个轻量级的、可扩展的、基于.NET Core的ORM框架,可以让我们更方便地操作数据库。下面的教程将介绍EF Core的基本概念和用法,以及如何使用EF Core在.NET Core应用程序中进行数据持久化。
第一步 安装EF Core
首先,在你的.NET Core项目中,需要通过NuGet安装EF Core相关的包。打开Visual Studio或者其他编辑器,搜索并安装Microsoft.EntityFrameworkCore和Microsoft.EntityFrameworkCore.Tools。
dotnet add package Microsoft.EntityFrameworkCore
dotnet add package Microsoft.EntityFrameworkCore.Tools
第二步 配置数据库连接
在使用EF Core之前,我们需要先配置数据库连接。在.NET Core中,我们可以通过appsettings.json文件实现。在该文件中,添加如下配置:
{
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=EFCoreDemo;User Id=dbuser;Password=123456"
}
}
在以上配置中,我们使用的是MSSQL Server数据库。如果你想使用其他类型的数据库,需要对应安装不同的EF Core提供程序,例如:
- Microsoft.EntityFrameworkCore.SqlServer
- Microsoft.EntityFrameworkCore.Sqlite
- Microsoft.EntityFrameworkCore.MySql
- Microsoft.EntityFrameworkCore.PostgreSQL
- Microsoft.EntityFrameworkCore.InMemory(内存数据库)
第三步 创建数据模型
在使用EF Core之前,我们需要先定义数据模型。例如,我们要创建一个简单的Blog实体类:
public class Blog
{
public int Id { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public DateTime CreateTime { get; set; }
}
在以上代码中,我们通过属性来定义了Blog实体的数据结构。其中,Id属性是一个自增的整型,用于标识Blog实体的唯一性;Title和Content分别是博客的标题和内容;CreateTime是博客的创建时间。
第四步 配置数据上下文
在使用EF Core之前,我们需要先创建一个数据上下文类。在.NET Core中,我们可以通过继承DbContext类来实现。例如,我们要创建一个名为BlogDbContext的数据上下文:
public class BlogDbContext : DbContext
{
public BlogDbContext(DbContextOptions<BlogDbContext> options) : base(options)
{
}
public DbSet<Blog> Blogs { get; set; }
}
在以上代码中,我们需要注意以下几点:
- BlogDbContext类需要继承自DbContext类。
- 在构造函数中,需要传递一个DbContextOptions参数给父类构造函数。
- DbSet
属性用于表示数据库中的一个数据集合。例如,在以上代码中,我们使用DbSet 属性来表示数据库中的Blogs数据集合。
第五步 添加数据迁移
在使用EF Core之前,我们需要先执行一个数据迁移操作。在.NET Core中,我们可以通过命令行工具来执行。例如,我们要在BlogDbContext中添加Blogs数据集合的迁移,执行以下命令:
dotnet ef migrations add InitialCreate
该命令会在项目根目录中自动生成一个Migrations文件夹,并在其中创建一个名为InitialCreate的迁移文件。该文件包含了数据模式的定义、创建和删除操作。
第六步 更新数据库
在执行完数据迁移操作后,我们需要将数据模式应用到数据库中。在.NET Core中,我们可以通过命令行工具来执行。例如,执行以下命令:
dotnet ef database update
该命令会根据生成的迁移文件,创建数据库表和字段,并将数据模式应用到数据库中。
示例1:查询
以下是一个简单的查询示例,使用LINQ查询从我们的数据库中检索Blog实体的所有数据:
public class BlogService
{
private readonly BlogDbContext _context;
public BlogService(BlogDbContext context)
{
_context = context;
}
public List<Blog> GetAllBlogs()
{
return _context.Blogs.ToList();
}
}
在以上代码中,我们通过注入BlogDbContext实例来获取数据库上下文,并在BlogService中创建GetAllBlogs方法用于查询所有博客数据。通过_context.Blogs.ToList()语句,我们可以获取Blogs数据集合中所有的数据。执行该方法后,返回的对象类型为List
示例2:插入
以下是一个简单的插入示例,用于将一个新的Blog实例插入到数据库中:
public class BlogService
{
private readonly BlogDbContext _context;
public BlogService(BlogDbContext context)
{
_context = context;
}
public void AddNewBlog(Blog blog)
{
_context.Blogs.Add(blog);
_context.SaveChanges();
}
}
在以上代码中,我们通过注入BlogDbContext实例来获取数据库上下文,并在BlogService中创建AddNewBlog方法用于插入一个新的博客实体。通过_context.Blogs.Add(blog)语句,我们可以将一个新的博客实体插入到Blogs数据集合中。执行_context.SaveChanges()语句后,EF Core会将该操作保存到数据库中。
以上是EF Core基础入门教程的完整攻略,希望能对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:EF Core基础入门教程 - Python技术站