介绍
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”,然后点击单击“创建”
创建模型
-
选择类库“EFCore.Models”,添加实体类
-
右键单击项目,然后选择“添加”>“类”,新增类
Blog.cs
,Post.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; } } }
-
选择类库“EFCore.EntityFrameworkCore”,
-
右键单击项目,然后选择”添加“>”项目引用“,然后选择“EFCore.Models”,点击确认
-
右键单击项目,然后选择”管理Neget程序包“,安装以下程序包
Microsoft.EntityFrameworkCore.SqlServer
-
然后添加上下文类
-
-
右键单击项目,然后选择“添加”>“类”,右键新增类
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
标签:Core,初体验,单击,get,EntityFrameworkCore,set,EFCore,NET,public From: https://www.cnblogs.com/YuYangBlogs/p/18135534