• .Net Core控制台程序使用EF Core读写SQLite


    开发工具:vs2019;操作系统:win10

    代码下载地址:

    链接:https://pan.baidu.com/s/1dv37YxXCqwnTpRfeputc8A
    提取码:6a2l

    1、Nuget包的引用

    新建一个名为ConsoleApp1的 .Net Core控制台应用程序,然后添加一些Nuget程序包。

    Microsoft.EntityFrameworkCore.Sqlite
    Microsoft.EntityFrameworkCore.Design
    Microsoft.EntityFrameworkCore.Tools
    Microsoft.Extensions.Configuration
    Microsoft.Extensions.Configuration.Json

    ASP.NET Core 2.1以上的版本中,Microsoft.EntityFrameworkCore.Tools包包含在Microsoft.AspNetCore.App 元包。

    而 ASP.NET Core 2.1 以下的版本中需要手动引用 Microsoft.EntityFrameworkCore.Tools包。

    2、创建配置文件

    新建一个名为appsettings.json的配置文件,内容如下:

    {
      "exclude": [
        "**/bin",
        "**/bower_components",
        "**/jspm_packages",
        "**/node_modules",
        "**/obj",
        "**/platforms"
      ],
      "ConnectionStrings": {
        "db": "Data Source=db/blogging.db"
      }
    }
    

    右击appsettings.json文件属性,修改复制到输出目录的值为“如果较新则复制”。

    3、创建模型

    新建一个文件夹Models,然后在该文件夹下创建Blog.cs,内容如下:

    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace ConsoleApp1.Models
    {
        public class Blog
        {
            public int BlogId { get; set; }
            public string Url { get; set; }
    
            public ICollection<Post> Posts { get; set; }
        }
    }
    

    在Models文件夹下创建Post.cs,内容如下:

    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace ConsoleApp1.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; }
        }
    }
    

    最后在同样目录下创建BloggingContext.cs,内容如下

    using Microsoft.EntityFrameworkCore;
    using Microsoft.Extensions.Configuration;
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Text;
    
    namespace ConsoleApp1.Models
    {
        public class BloggingContext:DbContext
        {
            public DbSet<Blog> Blogs { get; set; }
            public DbSet<Post> Posts { get; set; }
    
            private IConfiguration configuration;
    
            public BloggingContext()
            {
                configuration = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json").Build();
            }
    
            protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                optionsBuilder.UseSqlite(configuration.GetConnectionString("db"));
            }
        }
    }
    

    4、创建数据库

    先创建一个名为db的文件夹,然后打开程序包管理控制台,在控制台下输入以下命令:

    Add-Migration InitialCreate
    Update-Database
    

    创建成功后,会发现db目录下有一个blogging.db数据库。右击blogging.db属性,修改复制到输出目录的值为“如果较新则复制”。

    5、使用模型

    打开Program.cs,替换成以下内容:

    using EFCoreSqliteTest.Models;
    using System;
    
    namespace EFCoreSqliteTest
    {
        class Program
        {
            static void Main(string[] args)
            {
                using (var db = new BloggingContext())
                {
                    db.Blogs.Add(new Blog { Url = "https://blog.csdn.net/lms99251" });
                    var count = db.SaveChanges();
                    Console.WriteLine("{0} records saved to database", count);
    
                    Console.WriteLine();
                    Console.WriteLine("All blogs in database:");
                    foreach (var blog in db.Blogs)
                    {
                        Console.WriteLine(" - {0}", blog.Url);
                    }
    
                    Console.ReadKey();
                }
            }
        }
    }
    

    运行程序,控制台窗口中会出现以下内容

  • 相关阅读:
    Haskell Interactive Development in Emacs
    Access Java API in Groovy Script
    手工设置Eclipse文本编辑器的配色
    Color Theme of Emacs
    Gnucash的投资记录
    Special Forms and Syntax Sugars in Clojure
    Use w3m as Web Browser
    SSE指令集加速之 I420转BGR24
    【图像处理】 增加程序速度的方法
    TBB 入门笔记
  • 原文地址:https://www.cnblogs.com/xubao/p/12632882.html
Copyright © 2020-2023  润新知