EF Core学习的最好的地方就是微软官方文档,下面的文章内容95%转载自官方文档:一个.Net Core控制台程序,使用EF Core及其迁移工具,创建、操作本地Sqlite数据库,一步一步,EF Core入门。
在本教程中,将创建一个 .NET Core 控制台应用,该应用使用 Entity Framework Core 对 SQLite 数据库执行数据访问。
你可在 Windows 上使用 Visual Studio,或在 Windows、macOS 或 Linux 上使用 .NET Core CLI 来学习本教程。
文章目录
先决条件
安装以下软件:
对于此工作负载,建议采用 Visual Studio 2019 版本 16.3 或更高版本:
- “.NET Core 跨平台开发” (位于“其他工具集” 下)
创建新项目
- 打开 Visual Studio
- 单击“创建新项目”
- 选择带有 C# 标记的“控制台应用 (.NET Core)” ,然后单击“下一步”
- 输入“EFGetStarted” 作为名称,然后单击“创建”
安装 Entity Framework Core
要安装 EF Core,请为要作为目标对象的 EF Core 数据库提供程序安装程序包。 本教程使用 SQLite 的原因是,它可在 .NET Core 支持的所有平台上运行。 有关可用提供程序的列表,请参阅数据库提供程序。
- “工具”>“NuGet 包管理器”>“包管理器控制台”
- 运行以下命令:PowerShell复制
Install-Package Microsoft.EntityFrameworkCore.Sqlite
提示:还可以通过右键单击项目并选择“管理 NuGet 程序包” 来安装包
创建模型
定义构成模型的上下文类和实体类。
- 右键单击项目,然后选择“添加”>“类”
- 输入“Model.cs” 作为名称,然后单击“添加”
- 将此文件的内容替换为以下代码
using System.Collections.Generic; using Microsoft.EntityFrameworkCore; namespace EFGetStarted { public class BloggingContext : DbContext { public DbSet<Blog> Blogs { get; set; } public DbSet<Post> Posts { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder options) => options.UseSqlite("Data Source=blogging.db"); } public class Blog { public int BlogId { get; set; } public string Url { get; set; } public List<Post> Posts { get; } = new List<Post>(); } 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; } } }
EF Core 还可以从现有数据库对模型进行反向工程。
提示:在实际应用中,将每个类放在单独的文件中,并将连接字符串放在配置文件或环境变量中。 为简化本教程,所有内容均放在一个文件中。
创建数据库
以下步骤使用迁移创建数据库。
在“包管理器控制台” 中运行以下命令PowerShell复制
Install-Package Microsoft.EntityFrameworkCore.Tools Add-Migration InitialCreate Update-Database
这会安装 EF Core 的 PMC 工具。 Add-Migration
命令为迁移搭建基架,以便为模型创建一组初始表。 Update-Database
命令创建数据库并向其应用新的迁移。
创建、读取、更新和删除
- 打开 Program.cs 并将内容替换为以下代码:
using System; using System.Linq; namespace EFGetStarted { class Program { static void Main() { using (var db = new BloggingContext()) { // 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(); } } } }
运行应用
运行 .NET Core 控制台应用时,Visual Studio 使用不一致的工作目录。 (请参阅 dotnet/project-system#3619)这会导致引发异常:无此类表格:博客。 更新工作目录:
- 右键单击项目,并选择“编辑项目文件”
- 在 TargetFramework 属性下方,添加以下内容:
<StartWorkingDirectory>$(MSBuildProjectDirectory)</StartWorkingDirectory>
- 保存该文件
现在可以运行应用:
- “调试”>“开始执行(不调试)”
后续步骤
- 按照 ASP.NET Core 教程在 Web 应用中使用 EF Core
- 了解有关 LINQ 查询表达式的详细信息
- 配置模型指定必需项和最大长度等内容
- 在更改模型后使用迁移来更新数据库架构
End
站长转载此篇文章,是建议还未使用EF Core的朋友,赶紧尝试下。
原文出处:Microsoft
原文链接:https://docs.microsoft.com/zh-cn/ef/core/get-started/?tabs=visual-studio
本文观点不代表Dotnet9立场,转载请联系原作者。