1. Dotnet9首页
  2. .NET
  3. 控制台

C# EF Core Sqlite

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 来学习本教程。

在 GitHub 上查看此文章的示例

先决条件

安装以下软件:

对于此工作负载,建议采用 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>
  • 保存该文件

现在可以运行应用:

  • “调试”>“开始执行(不调试)”

后续步骤

End

站长转载此篇文章,是建议还未使用EF Core的朋友,赶紧尝试下。

原文出处:Microsoft

原文链接:https://docs.microsoft.com/zh-cn/ef/core/get-started/?tabs=visual-studio

本文观点不代表Dotnet9立场,转载请联系原作者。


.NET课程推荐
  1. 《.NET Core开发实战》  -  .NET Core微服务架构最佳实践                     点击了解更多
  2. 《.NetCore实战精品集》-  分布式/跨平台/微服务/前后分离/IOC/ORM  点击了解更多

发表评论

登录后才能评论

联系我们

186-2806-45xx

在线咨询:点击这里给我发消息

邮件:632871194@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code