在.net核心和pomelo驅動程序上使用EF Core搭建mysql時缺少存儲過程

.net-core entity-framework-core mysql stored-procedures

我正在嘗試在EFCore中使用Scaffolding來對抗mysql數據庫,其中生成的代碼將在Linux CentOS(NetCoreApp框架)上運行。我正在使用VS2015 Update3在Windows上進行開發。

表格已成功進行逆向工程,但不包括存儲過程。沒有存儲過程,我擔心我們不得不放棄EFCore。


  • EFCore中的腳手架對mysql是否支持逆向工程存儲過程?
  • 使用任何驅動程序的組合?
  • 假設目前EFCore缺少此功能,您是否知道有任何解決方案(付費或未付款)來實現這一目標 - 逆向工程現有的mysql數據庫將用於CentOS上的netcoreapp?

作為示例,我開始使用一個帶有單個表和無參數存儲過程的mysql數據庫。我想我正在使用最新的EFCore和Pomelo驅動程序,如下面的project.json所示......

{
  "version": "1.1.0-*",
  "buildOptions": {
    "emitEntryPoint": true
  },

  "tools": {
    "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final"
  },

  "dependencies": {
    "Microsoft.EntityFrameworkCore.Design": "1.1.0",
    "Pomelo.EntityFrameworkCore.MySql": "1.1.1-prerelease-10011",
    "Pomelo.Data.MySql": "1.0.0",
    "Pomelo.EntityFrameworkCore.MySql.Design": "1.1.1-prerelease-10011",
    "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final"
  },

  "frameworks": {
    "netcoreapp1.1": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.1.0-*"
        }
      }
    }
  }
}

執行dotnet restore使用以下命令調用腳手架...

Scaffold-DbContext "server=localhost;user id=root;password=;database=simpledb" Pomelo.EntityFrameworkCore.MySql -OutputDir Models -force

在運行腳手架之後,在我的實際情況和簡單的測試用例中,生成的代碼只包含表,並且不包含存儲過程。

熱門答案

Pomelo和最新版本的Entity Framework存在一個已知問題。

這個配置對我有用:

Microsoft.EntityFrameWorkCore 2.0.3
Microsoft.EntityFrameworkCore.Tools 2.0.3
Pomelo.EntityFrameworkCore.MySql 2.0.1

要在MySql中調用存儲過程,您可以使用以下內容:

var values = _context.Test.FromSql("call test_proc2(0)").ToList();


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因