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

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