ORM框架EF Core詳細教程


下面是一個簡單是.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();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM