Entity Framework Versions Issue - entity-framework

Have a class library and a WPF application and am trying to contain all the Entity Framework items within the class library and use an interface to get the info out. Everything is setup but I get this message each time I try it out:
Message "The type initializer for 'System.Data.Entity.Internal.AppConfig' threw an exception."
When I looked at the Inner Exceptions it appeared it couldn't find version 5.0.0.0 of EntityFramework and when I checked the Reference for it, it was 4.4.0.0. Tried uninstalling and reinstalling EntityFramework via NuGet but having no luck. Any ideas on what to try next?
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=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
</entityFramework>
</configuration>

I think this is a problem with your app.Config prehaps you dont have the following:
<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=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
</entityFramework>
This needs to be in the config file for your application entry point (whatever executable/webapp is running/using your class library)
A key detail to note is that EF4.4 is released inside the EF5 package and is used for non-.NET 4.5 applications (ie if you have .net 4.5 your reference will be 5.0 otherwise with .net 4 it will be 4.4)

Uninstalled EntityFramework
Updated Class Library to .Net Version 4.5
Reinstalled EntityFramework
Now all working.

I have tried changing the version of EF in the webconfig to the current installed version of the EF on the project and everything works smoothly.

Related

The type or namespace DbContext could not be found (EF installed)

I making simple EntityFramework with MVC application. My solution has 3 projects
GE.BLL
GE.Entities
GE.Web
Everything looked great until i decided to rename GE.BLL to GE.Core
so i removed the whole project and added all classes and references again from scratch to GE.Core. Now my EntityFramework for this project is installed and System.Data.Entity is also referenced but does not compile
"The type or namespace DbContext could not be found"
My app.config is
<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.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>
and packages.config is
<packages>
<package id="EntityFramework" version="6.1.3" targetFramework="net451" />
</packages>
i am using framework 4.5.1
So I uninstalled EntityFramework and re-installed it!
This happened to me when I was working with Microsoft.EntityFrameworkCore. The problem seemed to be that, when I initially created the project, I mistakenly put it within a .NET Core Web project. I had subsequently moved it up a level in the folder hierarchy outside of the web project. That is when I started seeing this error. Uninstalling and reinstalling the NuGet packages did not seem to work and Visual Studio's suggested fix was to reference dlls in the "nugetfallbackfolder" directory under Program Files.
Long story short, I ended up creating a brand new project and then everything worked just fine (after referencing the necessary Microsoft.EntityFrameworkCore NuGet packages, anyhow.

EF6 with Npgsql under Asp.net 5

Hi I am trying to use EF6 with npsql under Asp.net 5. I am using a simple console (asp.net5) for testing and a separate class lib (.net 4.5) for the data access as a simple test enviroment. Have installed EF6 using
nuget EntityFramework6.Npgsql. Have also removed .net core dependencies from project.json file.
The problem i keep on getting the following error.
An exception of type 'System.NotSupportedException' occurred in EntityFramework.dll but was not handled in user code
Additional information: Unable to determine the provider name for provider factory of type 'Npgsql.NpgsqlFactory'. Make sure that the ADO.NET provider is installed or registered in the application config.
It seems to have trouble with the provider name for 'Npgsql.NpgsqlFactory'. But the provider name in the configuration is set. May be it needs to be set when it was compiled. Any ideas?
the app.config file is as follows
<?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>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<entityFramework>
<providers>
<provider invariantName="Npgsql.NpgsqlFactory" type="Npgsql.NpgsqlServices, Npgsql.EntityFramework"></provider>
</providers>
<defaultConnectionFactory type="Npgsql.NpgsqlConnectionFactory, Npgsql" />
</entityFramework>
<system.data>
<DbProviderFactories>
<remove invariant="Npgsql" />
<add name="Npgsql" invariant="Npgsql" description=".Net Framework Data Provider for Postgresql" type="Npgsql.NpgsqlFactory, Npgsql" />
</DbProviderFactories>
</system.data>
</configuration>
Any help will be much appreciated. Many thanks.
You are missing the complete assembly information for npgsql in your configuration. Please, check this answer for more information about it and the complete information:
https://stackoverflow.com/a/35440114/246097
I hope it helps.

Wrong Entity Framework version in config files with 6.1 installed

I created a project from template which included EF 6.0.
I then updated the nuget packages and EF 6.1.1 is installed.
However in web.config i still have this:
<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>
All other dependent assemblies are updated correctly (i.e MVC e.t.c)
Should i have updated this myself?
That is the assembly version, and it stays at 6.0.0.0

The type initializer for 'System.Data.Entity.Internal.AppConfig' threw an exception. After downgrading to entity framework 5 from 6

I'm trying to get Entity Framework working with and Oracle database.
I originally had entity framework 6 installed but now I've downgraded to EF 5 because I've read EF6 doesn't work with ODP.NET.
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
</configSections>
This is my app config, config section. I've reinstalled EF 5 on all my projects but keep getting this error.

Entity Framework Code First Default Database Location

I am trying to follow the video tutorial on http://msdn.microsoft.com/en-us/data/jj193542 using Visual Studio 2012 Express for Desktop.
I created POCO's, and a DbContext, ran some sample queries and it worked. But I did not provide any connection string. So where is the database? (sdf or mdf file maybe?)
During the tutorial the guy uses SQL Server Object Explorer to view the database, but I couldn't find that view in VS Express.
For reference, here is the default App.config that gets generated.
<?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=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
</entityFramework>
</configuration>
"If SQL Express is installed (included in Visual Studio 2010) then the database is created on your local SQL Express instance (.\SQLEXPRESS). If SQL Express is not installed then Code First will try and use LocalDb ((localdb)\v11.0) - LocalDb is included with Visual Studio 2012"
For more information : http://msdn.microsoft.com/en-us/data/jj591621.aspx
#Default is correct, the default SQL server is (LocalDb)\mssqllocaldb in VS 2015 and 2017.