我正在将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连接字符串而不是密码.
按照接受的答案中的指示对&符号进行编码应该可以正常工作,尽管我还没有测试过.
在我对ReSharper 5进行试用期间,我注意到它的IntelliSense版本落后于Visual Studio 2010的三种方式对我来说很关键:
<%= %>标签之间的.aspx文件中打破了我.值得庆幸的是,ReSharper允许您使用Visual Studio IntelliSense以及其他强大功能.我没有使用ReSharper的IntelliSense,我错过了什么了不起的东西?
我使用的方法类似于ASP.NET MVC教程中的方法,您将控制器ModelState集合的包装器传递给验证类,以便控制器可以访问错误信息.
这是一个熟练的例子:
interface IProductValidator {
void Validate(Product item);
}
class ProductValidator {
// constructor
public ProductValidator(ModelStateWrapper validationDictionary) { }
}
interface IProductService {
void AddProduct();
}
public class ProductService : IProductService {
// constructor
public ProductService(IProductValidator validator) { }
}
Run Code Online (Sandbox Code Playgroud)
使用Castle Windsor容器进行IoC/DI,如何创建IProductService?通常,我会:
MvcApplication.IocContainer.Resolve<IProductService>()
Run Code Online (Sandbox Code Playgroud)
但是这不能将Controller的ModelState属性值注入ProductValidator的构造函数中.我可以使用构造函数参数来连接它,但这看起来真的很难看.
在.NET融合记录器(FUSLOGVW.exe)中,屏幕右下方的两个选项有什么作用?
Log Categories
+ Default
+ Native Images
Run Code Online (Sandbox Code Playgroud)
我如何使用其中任何一个来诊断混合模式装配问题?