Entity Framework Connection String Variable
tomorgan
Posts: 4
Hi there,
Apologies if this has come up before, but the search didn't reveal anything so hopefully this keyword-stuffed title will help anyone else in the future!
I'm evaluating Deployment Manager at the moment: so far, so awesome
However, I have a question about the best way to create variables which represent SQL connection strings as used by Entity Framework. The structure of the connection key in the web.config is a little different. Specifically, here's an example:
As you can see, there's use of embedded quotes, using the " escape string.
I read in your docs that you shouldn't use escape characters in variables, to avoid double escaping and in testing, that's exactly what's happened (producing something like "" instead of "e;")
What's the best way of writing this in the variable string to output a connection string like the above?
Thanks for any help.
-tom
Apologies if this has come up before, but the search didn't reveal anything so hopefully this keyword-stuffed title will help anyone else in the future!
I'm evaluating Deployment Manager at the moment: so far, so awesome
However, I have a question about the best way to create variables which represent SQL connection strings as used by Entity Framework. The structure of the connection key in the web.config is a little different. Specifically, here's an example:
<add name="Entities" connectionString="metadata=res://*/EntityFrameworkModel.DatabaseModel.csdl|res://*/EntityFrameworkModel.DatabaseModel.ssdl|res://*/EntityFrameworkModel.DatabaseModel.msl;provider=System.Data.SqlClient;provider connection string="data source=SERVERNAME;initial catalog=DBNAME;Trusted_Connection=True;MultipleActiveResultSets=True;App=APPNAME"" providerName="System.Data.EntityClient" />
As you can see, there's use of embedded quotes, using the " escape string.
I read in your docs that you shouldn't use escape characters in variables, to avoid double escaping and in testing, that's exactly what's happened (producing something like "" instead of "e;")
What's the best way of writing this in the variable string to output a connection string like the above?
Thanks for any help.
-tom
Comments
Sorry for the delay in replying. If you put the actual quote in the variable value rather than the xml representation of that quote.
Thanks for your reply. However... I want the xml representation to be persisted. The example string is how the key should look after it's been though DM. Notice that there's an escaped quotation string within the standard quotation. That's what I can't work out what to do.
If you add a variable called Entities to your project with the value specified as:
Then it will look exactly as you want it to after it has been through Deployment Manager. So remove the surrounding quotes and replace the xml quote tags with an actual ". Deployment Manager understands that the config file is xml and escapes the characters accordingly.
Hope that helps.
The bit I was surprised about was that I didn't need to include the providerName attribute in the variable - I was worries that DM would remove it when updating the variable on the deployment machine, but that wasn't the case.
Thanks again for your help.
-tom