Pokud ve Vaší aplikaci používáte Entity Framework, který však nemáte “nainstalován” (NuGet package) v prezentační/komunikační vrstvě, ale jste od něj odstíněni prostřednictvím nějakého jiného projektu nebo referencované assembly (obvykle skrz Repository), můžete se dočkat poměrně triviální chyby:
InvalidOperationException:
No Entity Framework provider found for the ADO.NET provider with invariant name ‚System.Data.SqlClient‘. Make sure the provider is registered in the ‚entityFramework‘ section of the application config file. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information.
Protože při Googlení můžete narazit na různé zcestné rady typu “nainstalujte si do projektu Entity Framework” (což tedy pomůže, ale je to holý nesmysl), připomínám, že ač se to zná neuvěřitelné, v první řadě je potřeba udělat přesně to, co text výjimky říká – tedy přidat do konfiguračního souboru (web.config, app.config) sekci entityFramework a do ní providera.
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections> <entityFramework> <providers> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> </providers> </entityFramework> </configuration>
…ona teda instalace celého Entity Frameworku NuGet package by to za vás udělala taky, ale…