.net8 vs2022 v17.9.6调试通过。
如题,和其他ef core用法高度相似。
安装一个“Microsoft.EntityFrameworkCore.Sqlite”即可。
模型类:
1 internal class D1Context:DbContext 2 { 3 protected override void OnConfiguring(DbContextOptionsBuilder options) 4 => options.UseSqlite($"Data Source={Path.Combine(Environment.CurrentDirectory, "d1.db")}"); 5 6 public DbSet<myt1> t1 { get; set; } 7 } 8 internal class myt1 9 { 10 [Key] 11 public string xm { get; set; } = "noname"; 12 public int nl { get; set; } 13 }
主程序:
1 static void Main(string[] args) 2 { 3 D1Context d1=new D1Context(); 4 myt1 t = new myt1 { xm = "yxl", nl = 25 }; 5 d1.t1.Add(t); 6 d1.SaveChanges(); 7 IQueryable<myt1> t1s=from x in d1.t1 select x; 8 showMyt1s(t1s); 9 10 t.nl = 26; 11 d1.t1.Update(t); 12 d1.SaveChanges(); 13 t1s = from x in d1.t1 select x; 14 showMyt1s(t1s); 15 d1.t1.Remove(t); 16 d1.SaveChanges(); 17 } 18 static void showMyt1s(IQueryable<myt1> x) 19 { 20 foreach (myt1 t in x) 21 { 22 Console.WriteLine(t.xm+"\t"+t.nl); 23 } 24 }
运行结果:
zs 20 ls 18 ww 19 yxl 25 zs 20 ls 18 ww 19 yxl 26
对于mysql,不同之处也仅限于包和连接字符串的设置部分不同。
包:
按微软官方说法,下载ORACLE官方包“MySql.EntityFrameworkCore”后,使用"using Microsoft.EntityFrameworkCore"。
连接字符串:
1 protected override void OnConfiguring(DbContextOptionsBuilder options) 2 => options.UseMySQL(get_ConnString()); 3 4 public DbSet<myt1> t1 { get; set; } 5 //self---------------------------- 6 string get_ConnString() 7 { 8 //初始化各种参数 9 var db_name = ""; 10 var ip_add = ""; 11 var port = ""; 12 var user_name = ""; 13 var user_pass = ""; 14 //设置连接字符串 15 return $"Database={db_name};Data Source={ip_add};port ={port};User Id={user_name};Password={user_pass};allow zero datetime=true; Charset = utf8;Allow User Variables = True"; 16 }
其余所有代码跟上面sqlite的相同。结果也一样。