Sha*_*ume 4 c# entity-framework visual-studio entity-framework-core visual-studio-2017
我正在阅读"使用Visual Studio 2017构建Web应用程序"(作者:Philip Japikse,Kevin Grossnicklaus和Ben Dewey)并且卡住了.当尝试使用Entity Framework Core为自定义执行策略创建类时,我收到错误CR0246"找不到类型或命名空间名称'ExecutionStrategyContext'(您是否缺少using指令或程序集引用?)"
该文本仅指出只有System和Microsoft.EntityFrameworkCore.Storage是必需的引用.EF Core 2.0文档似乎与文本匹配,但我不能让错误消失.
注意:本书使用Core和EF 1.1,而我使用2.0.但我没有在任何文件中看到任何暗示这是问题的文件.这堂课是:
using System;
using Microsoft.EntityFrameworkCore.Storage;
using Microsoft.EntityFrameworkCore;
namespace SpyStore.DAL.EF
{
public class MyExecutionStrategy : ExecutionStrategy
{
public MyExecutionStrategy(ExecutionStrategyContext context) :
base(context, ExecutionStrategy.DefaultMaxRetryCount, ExecutionStrategy.DefaultMaxDelay)
{
}
public MyExecutionStrategy(ExecutionStrategyContext context, int maxRetryCount, TimeSpan maxRetryDelay) :
base(context, maxRetryCount, maxRetryDelay)
{
}
protected override bool ShouldRetryOn(Exception exception)
{
return true;
}
}
}
Run Code Online (Sandbox Code Playgroud)
VS2017突出显示了ExecutionStrategyContext的两个实例.我已经尝试将它们更改为'ExecutionStrategy context'而不是'ExecutionStrategyContext context',但我不认为这是我想要的,我仍然会收到错误,因为我的第一个参数是上下文.任何帮助表示赞赏!谢谢!
我无法提供文档链接,因为此时相关的EF Core API文档尚未更新,但在v2.0中,ExecutionStrategyContext该类已被替换,ExecutionStrategyDependencies并且ExecutionStrategy该类现在具有以下构造函数:
protected ExecutionStrategy(DbContext context, int maxRetryCount, TimeSpan maxRetryDelay);
protected ExecutionStrategy(ExecutionStrategyDependencies dependencies, int maxRetryCount, TimeSpan maxRetryDelay);
Run Code Online (Sandbox Code Playgroud)
据此,更新的样本应该是这样的:
public class MyExecutionStrategy : ExecutionStrategy
{
public MyExecutionStrategy(DbContext context) :
this(context, DefaultMaxRetryCount, DefaultMaxDelay)
{
}
public MyExecutionStrategy(DbContext context, int maxRetryCount, TimeSpan maxRetryDelay) :
base(context, maxRetryCount, maxRetryDelay)
{
}
public MyExecutionStrategy(ExecutionStrategyDependencies dependencies) :
this(dependencies, DefaultMaxRetryCount, DefaultMaxDelay)
{
}
public MyExecutionStrategy(ExecutionStrategyDependencies dependencies, int maxRetryCount, TimeSpan maxRetryDelay) :
base(dependencies, maxRetryCount, maxRetryDelay)
{
}
protected override bool ShouldRetryOn(Exception exception)
{
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1282 次 |
| 最近记录: |