[英]“Exception has been thrown by target of invocation” when creating controller (ASP.NET MVC 5 with MySql)
我正在設置一個包含兩個項目的解決方案:1) 我的類庫和 2) 我的 Web UI。 最終,該網站將用於顯示來自現有 mysql 數據庫的查詢結果。
我努力創建 ado.net 實體模型有一段時間了。 但我想我在更新了 Visual Studio 的 mysql 連接器並按照此處的說明進行操作后已經弄清楚了: https : //dev.mysql.com/doc/connector-net/en/connector-net-entityframework60.html
現在創建了實體模型,我正在努力創建一個帶有腳手架的簡單控制器。 我已經在 web.config 和 app.config 中仔細檢查了我的連接字符串和 ef 提供程序。
我已經瀏覽了這些問題,但沒有找到我的答案:
我很確定問題在於我如何配置它。 有一段時間我認為 app.config 中的內容無關緊要,因為 UI 項目(包含 web.config)被設置為啟動項目。 現在我很困惑。 這就是為什么我在下面都包括在內的原因。 任何見解都非常感謝。
從 web.config:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-MySolution.UI-20161111094519.mdf;Initial Catalog=aspnet-MySolution.UI-20161111094519;Integrated Security=True"
providerName="System.Data.SqlClient" />
<add name="MySolutionEntities" connectionString="metadata=res://*/Entities.DevData.csdl|res://*/Entities.DevData.ssdl|res://*/Entities.DevData.msl;provider=MySql.Data.MySqlClient;provider connection string="server=****;user id=****;password=****;database=mydatabase""
providerName="System.Data.EntityClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="System.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
<provider invariantName="System.Data.MySqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFrameworkSqlServer" />
</providers>
</entityFramework>
從 app.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="System.Data.SqlClient"
type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
<provider invariantName="MySql.Data.SqlClient"
type="MySql.Data.Entity.SqlServer.ProviderServices, EntityFramework.SqlServer"/></providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient" />
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
<connectionStrings>
<add name="MySolutionEntities" connectionString="metadata=res://*/Entities.DevData.csdl|res://*/Entities.DevData.ssdl|res://*/Entities.DevData.msl;provider=MySql.Data.MySqlClient;provider connection string="server=****;user id=****;password=****;database=mydatabase""
providerName="System.Data.MySqlClient" />
</connectionStrings>
</configuration>
好的,我不確定我是如何解決這個問題的,但我想我應該嘗試描述它。 我以同樣的方式重新開始我的解決方案並創建了實體模型。 然后,我沒有在 dev.mysql.com 上的那篇文章(上面的鏈接)中使用提供者標簽中的代碼,而是在我的 app.config 中找到了這個:
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
</providers>
我將同樣的內容復制到我的 web.config 中。 然后我能夠用腳手架創建控制器。
遲到的答案,但我希望它可以幫助我遇到同樣問題的人,我只是通過 nuget 包管理器控制台卸載並重新安裝實體框架來解決它。 o 運行包管理器控制台:
工具 -> NuGet 包管理器 -> 包管理器控制台
刪除:
UnInstall-Package EntityFramework
重新安裝:
Install-Package EntityFramework
我希望這也適用於你
經過 8 小時的調試 EFPowerTools,我發現在 C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\Common7\\IDE\\PrivateAssemblies 是 Mysq.Data 和 Mysql.Data.Ef6,它們是不同的版本 [6.9 .8] 從我的 web 配置 [6.10.9] 中的那些我復制了 bin 6.10.9 中的版本到上面的 PrivateAssemblies 文件夾,一切正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.