0

在业务逻辑层中,我确实有一个包含 8 个步骤的流程。在 DAL 中,我使用的是 EntiyFrameWork 代码优先方法。我创建了一个 Container 对象,它在我必须执行 DBoperaions 的每个方法中都继承了 DBContext like(using(var context=new MyContainer))。对于性能部分,我发现创建它的对象需要时间。我可以在 Bll 中创建该容器的对象一次(在流程开始时)并将其作为参数传递给所有方法,并在完成所有 8 个步骤后在流程结束时处理该对象。任何帮助都将受到高度重视。

4

1 回答 1

2

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

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

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

...然后做:

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

这比通过整个上下文更容易测试。

于 2012-05-01T13:31:03.400 回答