Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I solve "Keyword not supported: 'metadata' "?

I can't connect to SQL Server and connection string of my project is:

<add name="Teleport_DEVEntities" connectionString="metadata=res://*/Data.Model.AdvertisingModel.csdl|res://*/Data.Model.AdvertisingModel.ssdl|res://*/Data.Model.AdvertisingModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=*****;initial catalog=****;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

I get this error:

Keyword not supported: 'metadata'

How can I fix this error?

like image 520
Batuhan Avlayan Avatar asked Jan 06 '16 14:01

Batuhan Avlayan


2 Answers

That connection string is only supported by Entity Framework. (To be fair, the keyword "entities" is in the key name!) If you want to use the connection string in an ADO raw connection, remove anything outside the &quot; string parts, including the &quot;s:

Change it to:

<add name="Teleport_DEVEntities" 
  connectionString="data source=*****;initial catalog=****;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" 
  providerName="System.Data.EntityClient" 
/>
like image 177
Derreck Dean Avatar answered Nov 16 '22 18:11

Derreck Dean


It seems the connectionString is of EntityFramework Type. Possible way could be skipping metaData and then getting the complete connectionString.

The below code saved my time !!

if (connectionString.ToLower().StartsWith("metadata=")) {
    System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder efBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(connectionString);
    connectionString = efBuilder.ProviderConnectionString; }
like image 40
Nivas Pandian Avatar answered Nov 16 '22 19:11

Nivas Pandian