ASP。NET核心MVC 5应用程序使用实体框架核心。
创建注册接口:
public interface IDummyInterfaceForRegistration<T>
{
}
上下文派生自实体框架核心DbContext类:
public partial class EevaContext : DbContext, IDummyInterfaceForRegistration<EevaContext>
{
public EevaContext(IHttpContextAccessor httpContextAccessor) {
IHttpContextAccessor对象创建已在startup.cs:中注册
public void ConfigureServices(IServiceCollection services)
{
services.AddHttpContextAccessor();
services.AddTransient<IDummyInterfaceForRegistration<EevaContext>, EevaContext>();
Home Controller将此类声明为依赖项:
public HomeController(EevaContext ctx, ILogger<HomeController> logger)
{
尝试运行应用程序引发异常
InvalidOperationException:无法解析类型的服务"伊娃。实体"EevaContext",同时尝试激活'存储。控制器。家庭控制器。
如何修复此问题?
创建注册接口:
public interface IDummyInterfaceForRegistration<T> { }
除非您有其他原因,否则您不需要仅用于注册的接口。
然后替换:
services.AddTransient<IDummyInterfaceForRegistration<EevaContext>, EevaContext>();
带有:
services.AddTransient<EevaContext>();
然后,您的控制器将收到一个EevaContext具体类的实例。