Entity Framework Core 入门教程来袭!快速上手强大的 ORM 工具,开启高效数据库开发之旅!

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 【8月更文挑战第31天】Entity Framework Core(EF Core)是一个轻量且可扩展的对象关系映射(ORM)框架,允许开发者使用 .NET 语言操作数据库而无需直接编写 SQL 语句。本教程涵盖 EF Core 的安装、数据库上下文创建、数据库连接配置及常见数据库操作(如添加、查询、更新和删除),并介绍如何利用数据库迁移功能安全地更改数据库结构。通过本教程,你可以快速掌握 EF Core 的基本用法,提高开发效率。

Entity Framework Core(EF Core)是一个轻量级、可扩展的对象关系映射(ORM)框架,它允许开发者使用.NET 语言来操作数据库,而无需直接编写 SQL 语句。本教程将带你快速上手 EF Core,让你轻松掌握这个强大的 ORM 工具。

一、安装 Entity Framework Core

首先,确保你已经安装了.NET Core SDK。然后,在你的项目中安装 Entity Framework Core 包。可以通过 NuGet 包管理器或者在命令行中使用以下命令进行安装:

dotnet add package Microsoft.EntityFrameworkCore
AI 代码解读

二、创建数据库上下文

数据库上下文(DbContext)是 EF Core 中与数据库进行交互的主要入口点。创建一个新的类,继承自DbContext类,并在其中定义数据库表的实体类集合。

例如,假设我们有一个名为“Book”的实体类,代表数据库中的书籍表:

using Microsoft.EntityFrameworkCore;

namespace MyApp.Models
{
   
    public class BookContext : DbContext
    {
   
        public BookContext(DbContextOptions<BookContext> options) : base(options)
        {
   
        }

        public DbSet<Book> Books {
    get; set; }
    }

    public class Book
    {
   
        public int Id {
    get; set; }
        public string Title {
    get; set; }
        public string Author {
    get; set; }
    }
}
AI 代码解读

三、配置数据库连接

在应用程序的启动文件中,配置数据库连接。可以使用不同的数据库提供程序,如 SQL Server、MySQL、PostgreSQL 等。

以下是一个使用 SQL Server 数据库的示例:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

namespace MyApp
{
   
    public class Startup
    {
   
        public Startup(IConfiguration configuration)
        {
   
            Configuration = configuration;
        }

        public IConfiguration Configuration {
    get; }

        public void ConfigureServices(IServiceCollection services)
        {
   
            services.AddDbContext<BookContext>(options =>
                options.UseSqlServer(Configuration.GetConnectionString("MyConnectionString")));

            services.AddControllers();
        }

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
   
            if (env.IsDevelopment())
            {
   
                app.UseDeveloperExceptionPage();
            }

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
   
                endpoints.MapControllers();
            });
        }
    }
}
AI 代码解读

appsettings.json文件中添加数据库连接字符串:

{
   
  "ConnectionStrings": {
   
    "MyConnectionString": "Server=(localdb)\\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;"
  }
}
AI 代码解读

四、执行数据库操作

一旦配置好数据库上下文和连接,就可以使用 EF Core 进行数据库操作了。以下是一些常见的操作示例:

  1. 添加数据:
using (var context = new BookContext())
{
   
    var book = new Book {
    Title = "The Great Gatsby", Author = "F. Scott Fitzgerald" };
    context.Books.Add(book);
    context.SaveChanges();
}
AI 代码解读
  1. 查询数据:
using (var context = new BookContext())
{
   
    var books = context.Books.ToList();
    foreach (var book in books)
    {
   
        Console.WriteLine($"Title: {book.Title}, Author: {book.Author}");
    }
}
AI 代码解读
  1. 更新数据:
using (var context = new BookContext())
{
   
    var book = context.Books.Find(1);
    if (book!= null)
    {
   
        book.Title = "New Title";
        context.SaveChanges();
    }
}
AI 代码解读
  1. 删除数据:
using (var context = new BookContext())
{
   
    var book = context.Books.Find(1);
    if (book!= null)
    {
   
        context.Books.Remove(book);
        context.SaveChanges();
    }
}
AI 代码解读

五、数据库迁移

EF Core 支持数据库迁移,允许你在不丢失数据的情况下更改数据库结构。可以使用以下命令创建和应用数据库迁移:

  1. 创建初始迁移:
dotnet ef migrations add InitialMigration
AI 代码解读
  1. 更新数据库:
dotnet ef database update
AI 代码解读

六、总结

通过本教程,你应该对 Entity Framework Core 有了一个初步的了解,并能够使用它进行基本的数据库操作。EF Core 提供了许多强大的功能,如查询构建、事务处理、懒加载等,可以大大提高开发效率。在实际应用中,可以根据具体需求深入学习和探索 EF Core 的更多功能。

以下是一个完整的示例项目,展示了如何使用 Entity Framework Core 进行数据库操作:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

namespace MyApp
{
   
    public class Startup
    {
   
        public Startup(IConfiguration configuration)
        {
   
            Configuration = configuration;
        }

        public IConfiguration Configuration {
    get; }

        public void ConfigureServices(IServiceCollection services)
        {
   
            services.AddDbContext<BookContext>(options =>
                options.UseSqlServer(Configuration.GetConnectionString("MyConnectionString")));

            services.AddControllers();
        }

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
   
            if (env.IsDevelopment())
            {
   
                app.UseDeveloperExceptionPage();
            }

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
   
                endpoints.MapControllers();
            });
        }
    }

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

        public DbSet<Book> Books {
    get; set; }
    }

    public class Book
    {
   
        public int Id {
    get; set; }
        public string Title {
    get; set; }
        public string Author {
    get; set; }
    }

    class Program
    {
   
        static void Main()
        {
   
            var builder = WebApplication.CreateBuilder();
            builder.Services.AddControllers();

            var app = builder.Build();

            if (app.Environment.IsDevelopment())
            {
   
                app.UseDeveloperExceptionPage();
            }

            app.UseRouting();

            app.UseAuthorization();

            app.MapControllers();

            app.Run();
        }
    }
}
AI 代码解读

希望这个教程对你有所帮助,让你能够快速上手 Entity Framework Core,开启高效的数据库开发之旅。

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
目录
打赏
0
0
0
0
319
分享
相关文章
Navicat Premium 17 最新版下载与配置:5分钟完成企业级数据库工具部署
Navicat Premium 17 是一款支持多种主流数据库(如 MySQL、Oracle、PostgreSQL 等)的多数据库管理工具,提供可视化数据建模、SQL 编辑和数据同步等功能。试用版提供 14 天全功能体验,商业版支持跨平台使用。安装环境要求 Windows 10/11 或 macOS 12.0+,最低配置为 4GB 内存。下载并解压安装包后,按步骤启动安装程序、接受许可协议、自定义安装路径并完成安装。首次运行时需激活许可证并配置数据库连接。常见问题包括无法写入注册表、试用期续费及连接数据库权限问题。高级功能涵盖 SSH 通道加速、自动化任务调度和性能调优建议。
41 19
循序渐进丨MogDB 中 gs_dump 数据库导出工具源码概览
通过这种循序渐进的方式,您可以深入理解 `gs_dump` 的实现,并根据需要进行定制和优化。这不仅有助于提升数据库管理的效率,还能为数据迁移和备份提供可靠的保障。
24 3
【HarmonyOS Next开发】云开发-云数据库(二)
实现了云侧和端侧的云数据库创建、更新、修改等操作。这篇文章实现调用云函数对云数据库进行增删改查。
75 9
【HarmonyOS Next开发】云开发-云数据库(二)
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
86 2
HarmonyOs开发:关系型数据库封装之增删改查
每个方法都预留了多种调用方式,比如使用callback异步回调或者使用Promise异步回调,亦或者同步执行,大家在使用的过程中,可以根据自身业务需要进行选择性调用,也分别暴露了成功和失败的方法,可以针对性的判断在执行的过程中是否执行成功。
131 13
推荐几个不错的数据库设计工具
推荐几个不错的数据库设计工具
189 11
鸿蒙开发:实现键值数据库存储
对于数据量比较的小的,我们直接选择轻量级的用户首选项方式即可,而对于数据量比较大的情况下,直接可以使用数据库,而对于相对来说,比较大的数据,我们就可以使用键值型数据库方式
117 2
Docker Compose V2 安装常用数据库MySQL+Mongo
以上内容涵盖了使用 Docker Compose 安装和管理 MySQL 和 MongoDB 的详细步骤,希望对您有所帮助。
154 42
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
97 25

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等