EntityFramework中的DbContext对象

时间:2012-05-01 04:43:30

标签: entity-framework

在业务逻辑层中,我确实有一个包含8个步骤的流程。并且在DAL中我使用EntiyFrameWork Code第一种方法。我创建了一个Container对象,它继承了DBContext(使用(var context = new MyContainer))在我必须执行DBoperaions的每个方法中。对于性能部分,我看到我创建它的对象需要时间。我可以在Bll中创建一次该容器的Object(在进程开始时)并将其作为参数传递给所有方法,并在完成所有8个步骤后在进程结束时处理该对象。任何帮助都会得到很高的评价。

1 个答案:

答案 0 :(得分:2)

是的,应该每个工作单元只创建一个ObjectContext

您可以将OC传递给步骤,也可以只传递所需的部件。例如,如果您只需要查询MyEntities.Foos某个步骤,则可以执行以下操作:

public class Step4 
{
    public Step4(IQueryable<Foo> foos)
    {
        // ...

...然后执行:

var step4Result = new Step4(context.Foos).Execute();

这比传递整个上下文更容易测试。