C# EFCore 根據Oracle/SqlServer數據庫表生成實體類和DbContext


官方文檔:

https://docs.microsoft.com/zh-cn/ef/core/managing-schemas/scaffolding?tabs=dotnet-core-cli

 

 本文以Oracle數據庫為演示例子,也包含SqlServer教程,注意閱讀文字,以免報錯。

VS→工具→Nuget包管理器→程序包管理器控制台(也可以直接右鍵依賴項管理Nuget包),

 注意默認項目別選錯了,

依次輸入如下命令

Install-Package Microsoft.EntityFrameworkCore.Tools //工具包
Install-Package Microsoft.EntityFrameworkCore.Design//設計包
Install-Package Oracle.EntityFrameworkCore //Oracle包

前兩個是必備,最后是對應數據庫的EF包,比如是sqlserver就導入sqlserver的ef包

Oracle包:Oracle.EntityFrameworkCore,連接字符串例子:Data Source=127.0.0.1/pwwdb_st;Password=sa;User ID=123456;

SqlServer包:Microsoft.EntityFrameworkCore.SqlServer,連接字符串例子:Server=127.0.0.1;DataBase=Test;Uid=sa;Pwd=123456

最后輸入

Scaffold-DbContext "Data Source=123;Password=123;User ID=123;" Oracle.EntityFrameworkCore -OutputDir Entity -context aaaContext

解釋一下,各個數據庫都通用,前面是關鍵詞,引號里是連接字符串,后面跟着的是對應數據庫的EF包,

-OutputDir 要在其中放置文件的目錄。 路徑相對於項目目錄。沒有會自動創建 

-context 是生成的上下文名稱

 

然后如果以后也不打算項目內遷移數據庫啥的可以把除了Oracle.EntityFramework其他的包移除了,

生成的dbContext里會包含警告,意思是代碼里最好不要帶這些敏感信息,

 

 然后把連接字符串寫到appsettings.json,

"ConnectionStrings": {
    "DLGS": "Data Source=123;Password=123;User ID=123;" },

startup類里注入,再把上面的警告和代碼注釋掉就ok了

services.AddDbContext<DlgsContext>(op =>
            {
                op.UseOracle(Configuration.GetConnectionString("DLGS")); });

 

最后宣傳一下我的小demo,

搞了一個實體生成器,.net5的winform窗體實現的

生成器模式(Builder Pattern)

想看代碼的可以上我的github上去看,求star💖

 

github地址:https://github.com/GaoXiong666/CreateEntity

 


免責聲明!

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



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