官方文檔:
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