ASP.NET Core 8 EntityFrameworkCore 初体验

介绍

Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技术。

EF Core 可用作对象关系映射程序 (O/RM),这可以实现以下两点:

  • 使 .NET 开发人员能够使用 .NET 对象处理数据库。
  • 无需再像通常那样编写大部分数据访问代码。

先决条件

Visual Studio 2022 : Visual Studio 2022 version 17.4 or later

.NET desktop development (under Desktop && Mobile) | .NET 桌面开发(在“桌面和移动版”下)

SQLite :SQLite Download Page

创建新项目

  • 打开 Visual Studio
  • 单击“新建项目”
  • 选择空白解决方案,然后单击“下一步”
  • 输入“EntityFrameworkCoreLearn”作为名称,然后单击“创建”
  • 右键解决方案,选择新增项目,选择ASP.NET Core的控制台应用,输入名称“EFCore.Test”,然后点击单击“创建”
  • 新增项目,选择ASP.NET Core的类库,输入名称“EFCore.EntityFrameworkCore”,然后点击单击“创建”
  • 新增项目,选择ASP.NET Core的类库,输入名称“EFCore.Models”,然后点击单击“创建”

创建模型

  1. 选择类库“EFCore.Models”,添加实体类

  2. 右键单击项目,然后选择“添加”>“类”,新增类Blog.csPost.cs

    namespace EFCore.Models
    {
        public class Blog
        {
            public int BlogId { get; set; }
            public string Url { get; set; }
    
            public List<Post> Posts { get; } = new();
        }
    }
    
    namespace EFCore.Models
    {
        public class Post
        {
            public int PostId { get; set; }
            public string Title { get; set; }
            public string Content { get; set; }
    
            public int BlogId { get; set; }
            public Blog Blog { get; set; }
        }
    }
    
  3. 选择类库“EFCore.EntityFrameworkCore”,

    • 右键单击项目,然后选择”添加“>”项目引用“,然后选择“EFCore.Models”,点击确认

    • 右键单击项目,然后选择”管理Neget程序包“,安装以下程序包

      Microsoft.EntityFrameworkCore.SqlServer

    • 然后添加上下文类

  4. 右键单击项目,然后选择“添加”>“类”,右键新增类BloggingContext.cs

    using EFCore.Models;
    using Microsoft.EntityFrameworkCore;
    
    namespace EFCore.EntityFrameworkCore
    {
        public class BloggingContext : DbContext
        {
            public DbSet<Blog> Blogs { get; set; }
            public DbSet<Post> Posts { get; set; }
    
            public string DbPath { get; }
    
            public BloggingContext()
            {
                DbPath = "Data Source=(localdb)\\mssqllocaldb;Initial Catalog=BloggingDB";
            }   
    
            protected override void OnConfiguring(DbContextOptionsBuilder options)
                => options.UseSqlServer(DbPath);
        }
    }
    

创建数据库

  • “工具”>“NuGet 包管理器”>“程序包管理器控制台”

  • 默认项目切换到EFCore.EntityFrameworkCore

  • 运行以下命令

    Install-Package Microsoft.EntityFrameworkCore.Tools
    Add-Migration InitialCreate
    Update-Database
    

    这会安装 EF Core 的 PMC 工具Add-Migration 命令为迁移搭建基架,以便为模型创建一组初始表。 Update-Database 命令创建数据库并向其应用新的迁移。

创建、读取、更新和删除

  • 右键项目EFCore.Test>设为启动项目

  • 打开Program.cs,替换以下代码

    using EFCore.EntityFrameworkCore;
    using EFCore.Models;
    
    using var db = new BloggingContext();
    
    Console.WriteLine($"Database path: {db.DbPath}.");
    
    // Create
    Console.WriteLine("Inserting a new blog");
    db.Add(new Blog { Url = "http://blogs.msdn.com/adonet" });
    db.SaveChanges();
    
    // Read
    Console.WriteLine("Querying for a blog");
    var blog = db.Blogs
        .OrderBy(b => b.BlogId)
        .First();
    
    // Update
    Console.WriteLine("Updating the blog and adding a post");
    blog.Url = "https://devblogs.microsoft.com/dotnet";
    blog.Posts.Add(
        new Post { Title = "Hello World", Content = "I wrote an app using EF Core!" });
    db.SaveChanges();
    
    // Delete
    Console.WriteLine("Delete the blog");
    db.Remove(blog);
    db.SaveChanges();
    
    Console.ReadKey();
    
    
  • 执行项目EFCore.Test

参考文档

https://learn.microsoft.com/zh-cn/ef/core/get-started/overview/first-app?tabs=visual-studio

posted @   Destiny、Yang  阅读(372)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示