如何在Entity Framework 6中增加CommandTimeout。
我可以增加
components.ConfigureComponent<EnclosedMessageTypeMutator>(DependencyLifecycle.InstancePerCall);
但每次更新模型时它都会丢失。 这有什么解决办法吗?
答案 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);