gpt4 book ai didi

entity-framework-6 - 增加 EF6 中的命令超时

转载 作者:行者123 更新时间:2023-12-01 06:24:35 25 4
gpt4 key购买 nike

如何在 Entity Framework 6 中增加 CommandTimeout。

我可以增加

//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated from a template.
//
// Manual changes to this file may cause unexpected behavior in your application.
// Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
public partial class ModelContainer : DbContext
{
public ModelContainer() : base("name=ModelContainer")
{
((IObjectContextAdapter)this).ObjectContext.CommandTimeout = 600;
}
}

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

最佳答案

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

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);

关于entity-framework-6 - 增加 EF6 中的命令超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30127927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com