Nuget包的引用
新建一个名为EFCoreSqliteTest
的 .Net Core控制台应用程序,然后添加一些Nuget程序包。
Microsoft.EntityFrameworkCore.Sqlite
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.Tools
Microsoft.Extensions.Configuration
Microsoft.Extensions.Configuration.Json
创建配置文件
新建一个名为appsettings.json
的配置文件,内容如下:
{
"exclude": [
"**/bin",
"**/bower_components",
"**/jspm_packages",
"**/node_modules",
"**/obj",
"**/platforms"
],
"ConnectionStrings": {
"db": "Data Source=db/blogging.db"
}
}
右击appsettings.json文件属性,修改复制到输出目录的值为“如果较新则复制”。
创建模型
新建一个文件夹Models,然后在该文件夹下创建Blog.cs
,内容如下:
using System.Collections.Generic;
namespace EFCoreSqliteTest.Models
{
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public ICollection<Post> Posts { get; set; }
}
}
又在Models文件夹下创建Post.cs
,内容如下:
namespace EFCoreSqliteTest.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.IO;
namespace EFCoreSqliteTest.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"));
}
}
}
创建数据库
先创建一个名为db的文件夹,然后打开程序包管理控制台,在控制台下输入以下命令:
Add-Migration InitialCreate
Update-Database
创建成功后,会发现db目录下有一个blogging.db数据库。右击blogging.db属性,修改复制到输出目录的值为“如果较新则复制”。
使用模型
打开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();
}
}
}
}
运行程序,控制台窗口中会出现以下内容
1 records saved to database
All blogs in database:
- https://blog.csdn.net/lms99251