0

I'm using entity framework 5 and I'm trying to create connection string at runtime.

this is my old configuration

<connectionStrings>
  <!--<add name="JobEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=local;initial catalog=DB;persist security info=True;user id=sa;password=1234;MultipleActiveResultSets=True;App=JOB&quot;" providerName="System.Data.EntityClient" />-->
</connectionStrings>

my DBContext constructor

public JobEntities(String connectionString)
            : base(connectionString)
        {
        }

and to call my data base

String entityConnStr = @"metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=data source=local;initial catalog=DB;persist security info=True;user id=sa;password=1234;MultipleActiveResultSets=True;App=JOB";

using (var context = new Model.JobEntities(entityConnStr))
{
     try
      {
        var d = context.TABLE.ToList();
      }
      catch(Exception ex)
      {
          MessageBox.Show(ex.Message);
      }
}

whene executing my code an exception has been thrown with message

keyword not supported :'initial catalog'.

someone can help me please

Khalil10
  • 69
  • 7
  • There is already a similar question here: http://stackoverflow.com/questions/8150737/asp-net-mvc3-connection-string-keyword-not-supported-initial-catalog – nsgocev Jul 03 '14 at 10:59

1 Answers1

0

Your provider connection string is not quoted properly.

String entityConnStr = @"metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=data source=local;initial catalog=DB;persist security info=True;user id=sa;password=1234;MultipleActiveResultSets=True;App=JOB";

should be

String entityConnStr = @"metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=""data source=local;initial catalog=DB;persist security info=True;user id=sa;password=1234;MultipleActiveResultSets=True;App=JOB""";

Connection strings for Entity Framework have provider-based connection strings embedded within them. The initial catalog attribute is being improperly interpreted as belonging at the entity framework level instead of the provider level.

Brian R. Mullin
  • 423
  • 3
  • 5