增加EF6中的命令超时

时间:2015-05-08 15:49:23

标签: entity-framework-6

如何在Entity Framework 6中增加CommandTimeout。

我可以增加

   components.ConfigureComponent<EnclosedMessageTypeMutator>(DependencyLifecycle.InstancePerCall);

但每次更新模型时它都会丢失。 这有什么解决办法吗?

1 个答案:

答案 0 :(得分:0)

您遇到的问题是每次刷新模型时自动生成的代码都会被覆盖。有两种方法可以实现这一目标:

1)稍微复杂的方法:为Model创建一个继承的类,并在继承的类中设置CommandTimeout。在您的代码中,使用继承的类而不是ModelContainer类。

2)更简单的方法:在单独的.cs文件中为模型创建重载的构造函数,这样就不会被覆盖。基本上,您可以创建一个名为ModelProperties.cs的附加文件。在该文件中,输入:

public partial class ModelContainer
{
    public ModelContainer(int timeout) : base()
    {
        ((IObjectContextAdapter)this).ObjectContext.CommandTimeout = timeout;
    }
}

然后,无论何时在代码中创建新的ModelContainer,都可以将所需的超时传递给构造函数:var myModelContainer = new ModelContainer(600);