首页 > 代码库 > 使用Entity Framework Core Code First创建SQLite数据库

使用Entity Framework Core Code First创建SQLite数据库

Entity Framework Core(以下简称“EF Core”)支持多种数据库。在这篇文章中,我们看看如何使用EF Core的Code First方式创建SQLite数据库

下载SQLite,解压后会得到三个文件,放到c:\sqlite目录下

技术分享

我们先创建一个.NET Core控制台程序

技术分享

添加EF Core for SQLite组件库

"dependencies": {
  "Microsoft.EntityFrameworkCore.Sqlite":  "1.1.0",
  "Microsoft.NETCore.App": {
    "type": "platform",
    "version": "1.0.0"
  }
},

  让我们创建一个类对应SQLite中的表

public class Category
{
     public int Id { get; set; }
     public string Name { get; set; }
}

按照国际惯例我们需要从DbContext派生一个类(数据库上下文)

public class SampleDBContext : DbContext
    {
        private static bool _created = false;
        public SampleDBContext()
        {
            if (!_created)
            {
                _created = true;
                Database.EnsureDeleted();
                Database.EnsureCreated();
            }
        }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            modelBuilder.Entity<Category>().ToTable("tb_Category");
        }
        protected override void OnConfiguring(DbContextOptionsBuilder optionbuilder)
        {
            optionbuilder.UseSqlite(@"Data Source=c:\sqlite\sqliteDB.db");
        }
    }

现在让我们添加一些数据,打开Main方法,添加下面的代码

using (var dbContext = new SampleDBContext())
            {
                dbContext.Set<Category>().Add(new Category { Name = "Wigs" });
                dbContext.Set<Category>().Add(new Category { Name = "Shoes" });
                dbContext.Set<Category>().Add(new Category { Name = "Dresses" });
                dbContext.SaveChanges();

                foreach (var cat in dbContext.Set<Category>().ToList())
                {
                    Console.WriteLine($"CategoryId= {cat.Id}, CategoryName = {cat.Name}");
                }
            }
            Console.ReadKey();

这个时候会在c:\sqlite下创建一个数据库文件sqliteDB.db,可以打开sqlite工具DB Browser for SQLite

技术分享

 这个例子其实很简单

 

使用Entity Framework Core Code First创建SQLite数据库