关于实体框架以及如何使用objectcontext的相当简单的问题。
在asp.net webform应用程序中,我实现了数据类中的大多数数据获取器,并试图确定它是否更好(通常意义上更好)为整个类创建一个私有上下文或声明一个上下文每种方法。
示例1:
public class Data
{
private MyEntity context = new MyEntity();
public Customer GetCustomer()
{
return context.Customer.Single();
}
public Order GetOrder()
{
return context.Order.Single();
}
}
或示例2:
public class Data
{
public Customer GetCustomer()
{
using (MyEntity ctx = new MyEntity())
{
return context.Customer.Single();
}
}
public Order GetOrder()
{
using (MyEntity ctx = new MyEntity())
{
return context.Order.Single();
}
}
}
答案 0 :(得分:2)
我个人非常喜欢在整个帖子中使用共享上下文,但是这些方案都没有真正实现这一点。我个人的偏好是使用依赖注入容器(如ninject)来管理EF上下文的生命周期。这意味着您可以进行整个回发交易。
就实施而言,我会像以下一样:
public class Data
{
private MyContext _context;
public Data(MyContext context)
{
_context = context;
}
public Customer GetCustomer()
{
return _context.Customer.Single();
}
public Order GetOrder()
{
return _context.Order.Single();
}
}
具有类似于:
的绑定Bind<MyContext>().ToSelf().InRequestScope();