Olivier Muhring

Olivier Muhring

  • 1.4k
  • 256
  • 7.9k

Connection details to connect to an SQL2014 Instance in EF 6

Feb 25 2015 8:02 PM

In a application I'm writing I use EF 6 to connect to my database server, a SQL Server 2014 instance. I did some work with EF "back in the day" when I was still developing in Visual Studio 2010, but the system since then has changed sufficiently for me to feel rather clueless with the new connection settings, as a result I've been unable to make a connection to my database server.

 In an attempt to fix the issue, I created a new project, had Visual Studio 2013 itself build a connection to my database using EF 6 and tried using the generated connection details in my app:

<entityFramework>         
   <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
      <parameters>
         <parameter value="Server=XXXXXXXXX\XXX2K14_XXX; Integrated Security=True; MultipleActiveResultSets=True" />
      </parameters>
   </defaultConnectionFactory>
   <providers>

         <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />   
   </providers>
</entityFramework>     
<connectionStrings>   
     <add name="XxxxxxXXXEntities" connectionString="metadata=res://*/XxxxxxXXX.csdl|res://*/XxxxxxXXX.ssdl|res://*/XxxxxxXXX.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=XXXXXXXXX\XXX2K14_XXX;initial catalog=XxxxxxXXX;integrated security=True;pooling=False;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> </connectionStrings>
 
When I use it in my application I still however get an error:0 
Test method Xxxxxx.Pos.Data.Tests.DataLayerTests.TestRepositoryUsage threw exception:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidOperationException: The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer' registered in the application config file for the ADO.NET provider with invariant name 'System.Data.SqlClient' could not be loaded. Make sure that the assembly-qualified name is used and that the assembly is available to the running application. See http://go.microsoft.com/fwlink/?LinkId=260882 for more information.
    at System.Data.Entity.Infrastructure.DependencyResolution.ProviderServicesFactory.GetInstance(String providerTypeName, String providerInvariantName)
   at System.Data.Entity.Internal.AppConfig.<.ctor>b__2(ProviderElement e)
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList(IEnumerable`1 source)
   at System.Data.Entity.Internal.AppConfig.<.ctor>b__1()
   at System.Lazy`1.CreateValue()
   at System.Lazy`1.LazyInitValue()
   at System.Lazy`1.get_Value()
   at System.Data.Entity.Internal.AppConfig.get_DbProviderServices()
   at System.Data.Entity.Infrastructure.DependencyResolution.AppConfigDependencyResolver.RegisterDbProviderServices()
   at System.Data.Entity.Infrastructure.DependencyResolution.AppConfigDependencyResolver.GetServiceFactory(Type type, String name)
   at System.Data.Entity.Infrastructure.DependencyResolution.AppConfigDependencyResolver.<>c__DisplayClass1.<GetService>b__0(Tuple`2 t)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at System.Data.Entity.Infrastructure.DependencyResolution.AppConfigDependencyResolver.GetService(Type type, Object key)
   at System.Data.Entity.Infrastructure.DependencyResolution.ResolverChain.<>c__DisplayClass3.<GetService>b__0(IDbDependencyResolver r)
   at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
   at System.Linq.Enumerable.FirstOrDefault(IEnumerable`1 source, Func`2 predicate)
   at System.Data.Entity.Infrastructure.DependencyResolution.ResolverChain.GetService(Type type, Object key)
   at System.Data.Entity.Infrastructure.DependencyResolution.CompositeResolver`2.GetService(Type type, Object key)
   at System.Data.Entity.Infrastructure.DependencyResolution.DbDependencyResolverExtensions.GetService(IDbDependencyResolver resolver)
   at System.Data.Entity.DbContext.InitializeLazyInternalContext(IInternalConnection internalConnection, DbCompiledModel model)
   at System.Data.Entity.DbContext..ctor(String nameOrConnectionString)
   at Xxxxxx.Pos.Data.PosContext..ctor() in PosContext.cs: line 11
 --- End of inner exception stack trace ---
    at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, ref Boolean canBeCached, ref RuntimeMethodHandleInternal ctor, ref Boolean bNeedSecurityCheck)
   at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, ref StackCrawlMark stackMark)
   at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, ref StackCrawlMark stackMark)
   at System.Activator.CreateInstance()
   at Core.Common.Data.DataRepositoryBase`2.Get() in DataRepositoryBase.cs: line 65
   at Xxxxxx.Pos.Data.Tests.RepositoryTestClass.GetClients() in RepositoryTestClass.cs: line 26
   at Xxxxxx.Pos.Data.Tests.DataLayerTests.TestRepositoryUsage() in DataLayerTests.cs: line 27
 Does anyone here have an idea what I'm doing wrong? I suppose it's going to be something stupid as always.