如何在连接string中包含&符号?

我正在使用entity framework4为一个简单的应用程序,并希望将我的连接凭据烤到以下连接string:

<connectionStrings> <add name="MyEntities" connectionString="metadata=res://*/MyDataModel.csdl|res://*/MyDataModel.ssdl|res://*/MyDataModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=localhost\DEV;Initial Catalog=MyDB;UserId=myUser;Password=jack&jill;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> </connectionStrings> 

但是,密码(我无法更改)包含&符号。 ASP.NET引发: Configuration Error: An error occurred while parsing EntityName. Line XX, position YYY. Configuration Error: An error occurred while parsing EntityName. Line XX, position YYY.

如果我用&amp; ,我得到一个SqlException: Login failed for user 'myUser'. 通常这个技巧是有效的,但是我猜测有些东西是失败的,因为这在技术上是连接string中的连接string。

我应该在这里做什么? 我的大部分课程包括如下代码:

 using (var context = new MyEntities()) { // do work } 

更新:事实certificate,我使用的凭据是一个域帐户,所以我真正需要的是在连接stringIntegrated Security=True而不是密码。

如接受的答案中所示,对&符号进行编码应该可以正常工作,尽pipe我还没有对它进行testing。

您将需要像使用所有.config文件所在的任何XML文档一样使用转义序列。

  • &符号=&= &amp;
  • 大于=> = &gt;
  • 小于= <= &lt;
  • Apostrophe ='= &apos;
  • Quote =“= &quot;

您也可以使用CDATA标签,以便您可以使用这些非法字符

<![CDATA[并以]]>结尾]]>

 <connectionStrings> <add name="MyEntities" connectionString=" metadata=res://*/MyDataModel.csdl|res://*/MyDataModel.ssdl|res://*/MyDataModel.msl; provider=System.Data.SqlClient; provider connection string=&quot; Data Source=localhost\DEV; Initial Catalog=MyDB;UserId=myUser; Password=<![CDATA[jack&jill]]>; MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> </connectionStrings> 

这在技术上是连接string内的连接string

你试过两次逃跑吗?

 &amp;amp;