use*_*830 55 c# asp.net configuration entity-framework-4
我正在将Entity Framework 4用于一个简单的应用程序,并希望将我的连接凭据烘焙到以下连接字符串中:
<connectionStrings>
<add name="MyEntities"
connectionString="metadata=res://*/MyDataModel.csdl|res://*/MyDataModel.ssdl|res://*/MyDataModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=localhost\DEV;Initial Catalog=MyDB;UserId=myUser;Password=jack&jill;MultipleActiveResultSets=True""
providerName="System.Data.EntityClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
但是,密码(我无法更改)包含&符号.ASP.NET抛出:
Configuration Error: An error occurred while parsing EntityName. Line XX, position YYY.
如果我用密码替换密码中的&符号&,我得到一个SqlException: Login failed for user 'myUser'. 通常这个技巧可行,但我猜测某些东西是失败的,因为这在技术上是连接字符串中的连接字符串.
我该怎么办?我的大多数课程包括以下代码:
using (var context = new MyEntities()) {
// do work
}
Run Code Online (Sandbox Code Playgroud)
更新: 事实证明我使用的凭据是域帐户,所以我真正需要的是Integrated Security=True连接字符串而不是密码.
按照接受的答案中的指示对&符号进行编码应该可以正常工作,尽管我还没有测试过.
hun*_*ter 92
您需要像使用任何XML文档一样使用转义序列,这是所有.config文件.
&><'"您也可以使用CDATA标记,以便您可以使用这些非法字符
<![CDATA[ 最后以 ]]>
<connectionStrings>
<add name="MyEntities" connectionString="
metadata=res://*/MyDataModel.csdl|res://*/MyDataModel.ssdl|res://*/MyDataModel.msl;
provider=System.Data.SqlClient;
provider connection string="
Data Source=localhost\DEV;
Initial Catalog=MyDB;UserId=myUser;
Password=<![CDATA[jack&jill]]>;
MultipleActiveResultSets=True""
providerName="System.Data.EntityClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38130 次 |
| 最近记录: |