Alex Gordon
Alex Gordon

Reputation: 60811

Connection string in constructor vs. app.config?

When referencing the configuration value in my context constructor, I face no issues with database connectivity:

public class MyDbContext : DbContext
{
    public MyDbContext ()
        : base("Name=Model1")
    {
    }
}

My App.config connection string looks like this:

<connectionStrings>
    <add name="Model1"
         connectionString="data source=10.4.4.3;initial catalog=mydatabase;persist security info=True;user id=myuser;password=mypass;MultipleActiveResultSets=True;App=EntityFramework"
         providerName="System.Data.SqlClient" />
  </connectionStrings>

However, when I hard-code the connection like so:

public class MyDbContext : DbContext
{
    public MyDbContext ()
        : base(@"data source=10.4.4.3;initial catalog=mydatabase;persist security info=True;user id=myuser;password=mypass;MultipleActiveResultSets=True;App=EntityFramework")
    {
    }
}

The exception I am getting is:

{System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Configuration.ConfigurationErrorsException: Configuration system failed to initialize ---> System.Configuration.ConfigurationErrorsException: Unrecognized element. (C:\ProgramData\SF\vm0\Fabric\work\Applications\abc.API.ProdAndPrice.O720.ProdLinesType_App285\ComponentsPkg.Code.1.0.0\Components.exe.Config line 38)
   at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
   at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors)
   at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
   --- End of inner exception stack trace ---
   at System.Configuration.ConfigurationManager.PrepareConfigSystem()
   at System.Configuration.ConfigurationManager.GetSection(String sectionName)
   at System.Configuration.PrivilegedConfigurationManager.GetSection(String sectionName)
   at System.Diagnostics.DiagnosticsConfiguration.GetConfigSection()
   at System.Diagnostics.DiagnosticsConfiguration.Initialize()
   at System.Diagnostics.DiagnosticsConfiguration.get_IndentSize()
   at System.Diagnostics.TraceInternal.InitializeSettings()
   at System.Diagnostics.TraceInternal.get_Listeners()
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, Object[] index)
   at Microsoft.Owin.Hosting.Utilities.SettingsLoader.FromConfigImplementation..ctor()
   at Microsoft.Owin.Hosting.Utilities.SettingsLoader.<LoadFromConfig>b__0()
   at System.Threading.LazyInitializer.EnsureInitializedCore[T](T& target, Func`1 valueFactory)
   at Microsoft.Owin.Hosting.Utilities.SettingsLoader.LoadFromConfig(IDictionary`2 settings)
   at Microsoft.Owin.Hosting.Engine.StartContext..ctor(StartOptions options)
   at Microsoft.Owin.Hosting.WebApp.StartImplementation(IServiceProvider services, StartOptions options, Action`1 startup)
   at Microsoft.Owin.Hosting.WebApp.Start(String url, Action`1 startup)
   at Components.OwinCommunicationListener.OpenAsync(CancellationToken cancellationToken) in F:\TFS\ooo720 Res\ooo720\DEV\Source\enterprise\abc.API.ProdAndPrice.O720.ProdLines\Components\OwinCommunicationListener.cs:line 78
   at Microsoft.ServiceFabric.Services.Runtime.StatelessServiceInstanceAdapter.<OpenCommunicationListenersAsync>d__19.MoveNext()}

What am I doing wrong? Why is the connection failing?

Upvotes: 0

Views: 409

Answers (1)

Keys
Keys

Reputation: 55

You don't need the connection string in app.config when you are assigning a key to it, and not using it and just passing the connection string in constructor

Upvotes: 1

Related Questions