Sqlite EF For ConsoleCore
在跨平台开发中使用Sqlite EF 框架
1. 安装依赖包
install-package Microsoft.EntityFrameworkCore
install-package EntityFrameworkCore.Sqlite
install-package Microsoft.EntityFrameworkCore.Sqlite.Design
install-package Microsoft.EntityFrameworkCore.Tools
2.建立数据模型
using System.ComponentModel.DataAnnotations;
namespace EFCoreQuickStart.Models
{
public class Book
{
[Key]
public int BookId { get; set; }
public string Text { get; set; }
}
}
3.建立数据上下文
using Microsoft.EntityFrameworkCore;
namespace EFCoreQuickStart.Models
{
public class BookDbContext : DbContext
{
public DbSet<Book> Books { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Data Source=books.db");
}
}
}
4.迁移数据
(系统不会自动生成数据库,因此需要通过迁移命令来创建数据库文件)
Add-Migration InitalCreate
Update-Database
5.使用
using EFCoreQuickStart.Models;
using Microsoft.EntityFrameworkCore;
namespace EFCoreQuickStart
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
using (var db = new BookDbContext()) {
Console.WriteLine("插入一条记录");
db.Books.Add(new Book() { Text = "C#高级编程" } );
Console.WriteLine("成功插入一条记录");
try {
db.SaveChanges();
}
catch (DbUpdateException ex)
{
Console.WriteLine(ex.InnerException?.Message);
}
//查询
Console.WriteLine("查询所有记录");
var model = db.Books
.OrderBy(b => b.BookId)
.First();
Console.WriteLine(model.Text);
//更新
Console.WriteLine("更新一条记录");
model.Text = "C#高级编程(第10版)";
db.SaveChanges();
Console.WriteLine("更新成功!");
}
}
}
}

浙公网安备 33010602011771号