ef6操作sqlite

前端之家收集整理的这篇文章主要介绍了ef6操作sqlite前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

从项目工具NuGet包工具,下载system.data.sqlite。在App.config中增加如下一条

  1. <!--下面是手动增加的一行-->
  2. <provider invariantName="System.Data.sqlite" type="System.Data.sqlite.EF6.sqliteProviderServices,System.Data.sqlite.EF6" />

写一个自己的实体类要引用 using System.ComponentModel.DataAnnotations.Schema;

  1. [Table("Actress")]
  2. public class Actress
  3. {
  4. public Int64 ID { get; set; }
  5. public string Name { get; set; }
  6. public Int32 Age { get; set; }
  7. }

再写一个继承于DBContext的上下文MyContext,引用二条 using System.Data.Entity;
using System.Data.Common;

  1. public class MyContext : DbContext
  2. {
  3. public DbSet<Actress> ActressSet { get; set; }
  4.  
  5. public MyContext(DbConnection conn) : base(conn,false)
  6. {
  7.  
  8. }
  9. }

先用sqliteConnection建立连接,再用sqliteCommand建立一个表,然后就可以用我们的MyContext增删改查,完整代码如下

  1. using (sqliteConnection conn = new sqliteConnection())
  2. {
  3. conn.ConnectionString = @"Data Source=d:\python\actress.db";
  4. conn.Open();
  5.  
  6. using (sqliteCommand cmd = new sqliteCommand(conn))
  7. {
  8. cmd.CommandText = @"create table if not exists Actress
  9. (ID integer primary key autoincrement,Name text not null,Age integer not null)";
  10. cmd.ExecuteNonQuery();
  11.  
  12. using (MyContext context = new MyContext(conn))
  13. {
  14. if (context.ActressSet.Where<Actress>(a => a.Name == "王菲").Count<Actress>() == 0)
  15. {
  16. context.ActressSet.Add(new Actress { Name = "王菲",Age = 47 });
  17. context.ActressSet.Add(new Actress { Name = "范冰冰",Age = 37 });
  18. context.ActressSet.Add(new Actress { Name = "柳岩",Age = 36 });
  19. context.SaveChanges();
  20. }
  21.  
  22. var actress = (from a in context.ActressSet select a).ToList();
  23. actress.ForEach(a => Console.WriteLine($"{a.ID} {a.Name} {a.Age}"));
  24. Console.WriteLine("======================================");
  25. context.ActressSet.Add(new Actress { Name = "赵薇",Age=41 });
  26. context.SaveChanges();
  27. actress = (from a in context.ActressSet select a).ToList();
  28. actress.ForEach(a => Console.WriteLine($"{a.ID} {a.Name} {a.Age}"));
  29.  
  30. context.ActressSet.Remove(context.ActressSet.Find(4)); ;
  31. context.SaveChanges();
  32.  
  33. Console.WriteLine("======================");
  34. actress = (from a in context.ActressSet select a).ToList();
  35. actress.ForEach(a => Console.WriteLine($"{a.ID} {a.Name} {a.Age}"));
  36. }
  37. }
  38. }
  39.  
  40. Console.WriteLine("按任意键结束");
  41. Console.ReadKey();

猜你在找的Sqlite相关文章