万金流
初次使用博客园,目前感觉还不错。 不知不觉用了4年零4个月了,越来越喜欢博客园。

.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的相同。结果也一样。

 

posted on 2024-05-21 21:28  万金流  阅读(165)  评论(0编辑  收藏  举报