问题
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="data source=*****;initial catalog=****;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
I get this error:
Keyword not supported: 'metadata'
How can I fix this error?
回答1:
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 "
string parts, including the "
s:
Change it to:
<add name="Teleport_DEVEntities"
connectionString="data source=*****;initial catalog=****;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"
providerName="System.Data.EntityClient"
/>
回答2:
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; }
回答3:
Pass only this much it will work
<add name="Teleport_DEVEntities" connectionString="data source=*****;initial catalog=*****;User ID=****;password=*****;MultipleActiveResultsets=True" providerName="System.Data.EntityClient" />
来源:https://stackoverflow.com/questions/34635822/how-do-i-solve-keyword-not-supported-metadata