许多人在编写单元测试时都使用模拟对象.什么是模拟对象?我为什么需要一个?我需要一个模拟对象框架吗?
我已经看到了程序员在代码中创建实体上下文时所采用的两种不同方式.
第一个是这样的,你可以在MSDN代码示例中找到它:
public void DoSomething() {
using (TaxableEducationEntities context = new TaxableEducationEntities()) {
// business logic and whatever else
}
}
Run Code Online (Sandbox Code Playgroud)
第二种是在一些封装了业务逻辑的类中将上下文创建为私有属性.所以你会有类似的东西:
public class Education_LINQ {
private TaxableEducationEntities context = new TaxableEducationEntities();
public void DoSomething() {
var result = from a in context.luAction
select a;
// business logic and whatever else
}
}
Run Code Online (Sandbox Code Playgroud)
哪种方式更有效?
假设您有两个方法,一个名为DoSomething1(),另一个名为DoSomething2(),两个方法都包含using语句来打开上下文并对其执行任何操作.你是否一个接一个地调用一个方法,是否会有任何多余的开销,因为基本上两个方法都创建了上下文,然后在它们完成后清理它?而不是只有一个私有属性在实例化类对象时创建,然后在对象超出范围时进行清理?
当我的表由另一方更新时,dotnet核心中的db上下文仍然返回旧值,如何强制Db上下文刷新?
我已经完成了研究,但我只发现人们使用ReloadEF核心无法使用的方法来强制刷新上下文.
其他一些解决方案建议在使用后配置上下文,但是我得到错误说DB上下文是通过依赖注入创建的,我不应该搞砸它.
在ASP.NET MVC应用程序中使用.NET 3.5 SP1时,ObjectContext可以在一个Http Request OR或SINGLE方法上具有生命周期.
using (MyEntities context = new MyEntities ())
{
//DO query etc
}
Run Code Online (Sandbox Code Playgroud)
在每个请求的每个方法VS中创建ObjectContext的性能成本是多少?
谢谢.