.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();
            }
        }
    }
}

運行程序,控制台窗口中會出現以下內容

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM