.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的相同。结果也一样。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构