![](/img/trans.png)
[英]C# .NET core 3 MVC Scaffolding with EntityFrameworkCore
[英]General usage approach for EntityFrameworkCore DatabaseFirst by not scaffolding in C#.NET
我想使用 EntityFrameworkCore 6 (EF6.Core) 向遠程用戶交付一個 C#.NET Core 6 應用程序,而該應用程序的主要目的是在將應用程序驗證到用戶的 MySQL 服務器后瀏覽整個 MySQL 服務器用於包括記錄的數據庫和表。 應用程序應解析並列出所有可用的數據庫,然后用戶應 select 任何列出的數據庫,然后應用程序應列出數據庫內的所有表,包括表架構,一旦選擇表,表記錄應被解析並可用用於進一步處理。
據我所知,有一些解決方案推薦了 CLI 方法,例如“dotnet 腳手架”或“dotnet 遷移”,我發現它們不適用於我的案例,因為以下條件不滿足。
我的要求是(1)用戶只獲得應用程序可執行文件,不會與開發人員共享數據庫結構和表/模式以進行集成。
(2) 用戶不應該也不會在自己的機器上執行“dotnet scaffolding”相關命令,將數據庫的schema交給開發者。
(3) 解決方案應該是通用的,而不是具體的,因為應用程序可執行文件不應該改變並針對用例進行調整
首先,我想知道 EntityFrameworkCore 6 是否足夠先進以滿足要求。
其次,非常感謝任何可以顯示任務應該如何完成的最小可運行工作 C# 代碼。
請考慮我是 EF 的初學者,我想閱讀和理解一個簡單的最小可運行代碼,它可以闡明如何解決問題。
順便說一句,如果 EF6 無法滿足要求,是否還有其他可用的建議解決方案?
Entity Framework Core 的目的是為已知數據庫構建代碼 model。 因此,它非常不適合您的應用程序。
相反,只需將常規 ADO.NET 方法與諸如MySqlConnector之類的庫一起使用。 您可以使用DbConnection.GetSchema
方法獲取所有模式和表的列表(您的 MySQL 用戶帳戶有權查看)。
using var connection = new MySqlConnection("Server=...;User=...");
connection.Open();
var databases = connection.GetSchema("DATABASES");
var tables = connection.GetSchema("TABLES");
// process the two DataTables retrieved above...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.