SQL Azure EF Database First Connection String in A

2019-01-27 22:28发布

问题:

I have a site running n Azure, which uses EF Database First model.

If I embed the connection string in the web.config and deploy all is rosy.

<add name="MyEntities" connectionString="metadata=res://*/App_Code.Model.csdl|res://*/App_Code.Model.ssdl|res://*/App_Code.Model.msl;provider=System.Data.SqlClient;provider connection string='Data Source=my.database.windows.net;Initial Catalog=myTest_DB;User ID=***;Password=***; MultipleActiveResultSets=False'"  providerName="System.Data.EntityClient"/>

But, I don't want the connection string in the web.config because it contains credentials.

So I moved it to the connection string area in Azure Properties.

First issue I hit is getting metadata invalid keyword error.

I solved that by changing the type from SQL Database to Custom.

However, I now get this error:

The connection string 'MyEntities' in the application's configuration file does not contain the required providerName attribute."

I've trawled the web and tried many variations of the connection string but not yet found the correct one.

Note: I guess I could make this an app setting and move the initialisation of the string to code, but even if only for curiosity sake I would like to know how to do it via the portal.

回答1:

The problem is not the connection string, but the inability to specify the providerName from the portal.

Try publishing with a local or dummy connection string in place, and overwriting it as you have in the Azure Application Settings. See this answer: https://stackoverflow.com/a/18964294/94853