Я использую 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>
Однако пароль (который я не могу изменить) содержит амперсанд. ASP.NET выбрасывает:
Configuration Error: An error occurred while parsing EntityName. Line XX, position YYY.
Если я заменю амперсанд в пароле &
, я получаю a SqlException: Login failed for user 'myUser'.
Обычно этот трюк работает, но я предполагаю, что что-то не работает, потому что это технически строка соединения внутри строки подключения.
Что мне здесь делать? Большинство моих классов включают в себя код типа:
using (var context = new MyEntities()) {
// do work
}
Обновление: Оказывается, учетные данные, которые я использую, являются учетной записью домена, поэтому мне действительно нужно Integrated Security=True
в строке подключения, а не в пароле.
Кодирование амперсанда, как указано в принятом ответе, должно работать нормально, хотя я его не тестировал.