【UWP】利用EF Core操做SQLite

在以往開發中,必定要在vs中安裝SQLite for Universal App Platform以及一款wrapper,如SQLitePCL。如今有了EntitfyFramewrok Core,咱們能夠更方便的操做SQLite數據庫了。數據庫

準備

Nuget包,EntityFramwork.SQLite和EntityFramework.Commands,目前是預覽版app

建立model

根據已有或者須要建立的數據表寫一個對應的modelide

[Table("Student")]
public class StudentModel ()
{
    [Key]
    public int ID { get; set; }
    public string Name { get; set; }
}

建立context

繼承DbContext寫一個上下文類,重寫OnConfiguring方法指明目標數據庫,屬性Students則對應數據庫中的學生表,還能夠重寫OnModelCreating,確立Map規則,也能夠像我同樣在model中用attributeui

class SchoolContext : DbContext
{
    public DbSet
  
  
  

 
  
  Students { get; set; }     protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)     {         base.OnConfiguring(optionsBuilder);         optionsBuilder.UseSqlite("Filename=School.db");     }     protected override void OnModelCreating(ModelBuilder modelBuilder)     {         base.OnModelCreating(modelBuilder);         // modelBuilder.Entity 
 
  
    ().Property( s => s.ID ).IsRequired();     } } 
   

 

鏈接數據庫

若是你尚未數據庫,那麼能夠在app運行時生成一個數據庫。在app.xaml.cs或者mainpage.xaml.cs中添加如下代碼便可,須要注意的是,只有app第一次運行時纔會建立數據庫文件,不用擔憂重複建立的問題。code

using (var db = new SchoolContext ())
{
    db.Database.Migrate();
}

若是你想使用已有的數據庫文件也能夠。在項目中添加相應的數據庫文件後,右鍵屬性設爲content和copy if newer/copy always。須要指出的是,EF會在LocalFolder而不是InstallLocation中尋找OnConfiguring裏設置的文件名,所以咱們須要先把數據文件從InstalledLocation複製到LocalFolder,再操做數據庫。orm

操做數據庫

這裏就用添加一個學生數據爲例繼承

StudentModel stu = new StudentModel();
stu.ID = 1234;
stu.Name = "Hello World";

var db = new SchoolContext ();
db.Students.Add(stu);
db.SaveChanges();

Happy Coding!開發

相關文章
相關標籤/搜索