'System.Data.Entity.Internal.AppConfig'的類型初始值設定項在子網站上引發了一個例外

c# entity-framework entity-framework-6 nuget

我有2個網站,一個是另一個的子目錄,但是是一個Application ex:/ root&/ root / Services

他們都使用Entity Framework 6.x,但子網站正在拋出System.Data.Entity.Internal.AppConfig的類型初始化程序'引發了一個異常,因為它看起來因為嵌套而看到同一個EF數據庫提供程序的許多條目web.config中

有沒有辦法清除提供程序集合,以便我不會收到此錯誤?我試過放入哪個沒效果。

如果我註釋掉提供者部分它是有效的

<providers>
  <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>

但我不想這樣做,因為不是每個環境都會有嵌套網站。並且NuGet傾向於將其重新插入。我可以通過編程方式進行調整嗎?

這是完整的異常和堆棧跟踪

<providers>
  <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>

一般承認的答案

在EF6你可以使用代碼基本配置-看看這個文章的更多細節。

編輯

我檢查了對EF6代碼的更改 ,其中忽略了完全重複。這應該可以解決您的問題。請注意,這不適合6.0.2版本,應該包含在6.0.2之後的下一個版本中。


熱門答案

我遇到過同樣的問題。

我只是通過更新版本號解決了這個錯誤:

版本= 5.0.0.0

至:

版本= 6.0.0.0

例:

<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, 

PublicKeyToken=b77a5c561934e089" requirePermission="false" />



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