下面是一個簡單是.net core項目引用EF core包完成簡單的訪問數據庫的操作流程
就我而言 我不喜歡使用它 第一點,因為它在生成實體模型時 生成第一遍之后 由於數據庫中某些字段更改了需要重新生成一邊 EFcore會疊加生成新修改的內容 舊的實體不會刪除掉(不應該這樣做)。第二點 如果你刪除了生成的實體模型 你再去執行生成語句 他會執行失敗。 可能是語句不對 我也不清楚 總之很麻煩
第一步 下載Nuget包
第二步 打開程序包管理控制台
第三步 輸入執行語句
Scaffold-DbContext "Server=.;Database=LocalDB;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir models -Force -UseDatabaseNames
LocalDBb表示你的數據庫名
Microsoft.EntityFrameworkCore.SqlServer表示使用的sqlserver數據庫
Force 表示重置更新實體(用於數據庫更新字段時 會重置實體內容)
EF Core使用Scaffold-DbContext(在執行語句中可以看到)命令從數據庫生成模型
注意:使用Scaffold-DbContext命令需要項目中安裝 Microsoft.EntityFrameworkCore.Design 和 Microsoft.EntityFrameworkCore.SqlServer 包,如果是MySQL的話則安裝 Pomelo.EntityFrameworkCore.MySql
然后就可以在 程序包管理器控制台 中運行 Scaffold-DbContext 命令了。
執行 get-help Scaffold-DbContext 可以查看幫助,會輸出一下信息 可自行執行查看
配置生成模型的參數 上面我執行的語句 就在里面對應
-Connection 數據庫連接字符串,必須指定,不同數據庫不一樣 -Provider 數據庫的提供器 -Project 指定將代碼生成到哪個項目下 -OutputDir 生成的代碼放在項目的哪個目錄下 -Context 上下文名稱 -Force 強制重寫 -StartProject 啟動項目
第四步 他會自動生成你語句中models的文件夾 里面 是你的實體類
注意這個LocalDBContext是生成的中間操作類
第五步 在appsetting中加上數據庫連接字符串
第六步 在startup中配置
第七步 直接在控制器中執行
//增加
Tset tset = new Tset();
tset.ID = Guid.NewGuid();
tset.Name = "jshad";
tset.Context = "akhcka";
_context.Set<Tset>().Add(tset);
//增加改都需要保存改變
_context.SaveChanges();
//刪除
Tset tset1 = new Tset();
tset1.ID = new Guid("5446f36d-6611-420c-9e73-e25620206de0");
_context.Set<Tset>().Remove(tset1);
//增加改都需要保存改變
_context.SaveChanges();
//查詢列表
var aa = _context.Set<Tset>().ToList();
//根據id查詢數據
Guid id = new Guid("c9edfd0d-6766-4746-a07f-3075bde0d897");
var bb = _context.Set<Tset>().Find(id);
//查詢一行
var cc = _context.Locals.Where(p => p.sendtime == "ajfhjah").FirstOrDefault();