无法使用EFCore 2

时间:2018-01-20 11:09:58

标签: c# sql-server entity-framework asp.net-core

我尝试从Entity Framework Core 2连接到远程SQL Server。

我的连接字符串是:

"ConnectionStrings": {
    "DbString": "Server=example.com; Port=1433; Database=EFDB; User Id=SA; Password=FakePassword"
}

当我致电this._context.Database.EnsureCreated();时,我收到以下错误:

  

失败:Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware [0]
  执行请求时发生了未处理的异常   System.TypeLoadException:无法加载类型' Microsoft.EntityFrameworkCore.Infrastructure.RelationalEventId'来自assembly' Microsoft.EntityFrameworkCore.Relational,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = adb9793829ddae60'。

     

at Microsoft.EntityFrameworkCore.SqlServerDbContextOptionsExtensions.ConfigureWarnings(DbContextOptionsBuilder optionsBuilder)
  在Microsoft.EntityFrameworkCore.SqlServerDbContextOptionsExtensions.UseSqlServer(DbContextOptionsBuilder optionsBuilder,String connectionString,Action 1 sqlServerOptionsAction)
at RestApiWithSwagger.Startup.<ConfigureServices>b__4_0(DbContextOptionsBuilder options) in /Users/mrdisaster/dev/RestApiWithSwagger/RestApiWithSwagger/Startup.cs:line 25
at Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.DbContextOptionsFactory[TContext](IServiceProvider applicationServiceProvider, Action
2 optionsAction)
  在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite factoryCallSite,ServiceProvider provider)
  在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor 2.VisitCallSite(IServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitSingleton(SingletonCallSite singletonCallSite, ServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor
2.VisitCallSite(IServiceCallSite callSite,TArgument参数)
  在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite,ServiceProvider provider)
  在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor 2.VisitCallSite(IServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor
2.VisitCallSite(IServiceCallSite callSite,TArgument参数)
  在Microsoft.Extensions.DependencyInjection.ServiceProvider。&lt;&gt; c__DisplayClass22_0.b__0(ServiceProvider provider)
  在Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType)
  在Microsoft.Extensions.Internal.ActivatorUtilities.GetService(IServiceProvider sp,Type type,Type requiredBy,Boolean isDefaultParameterRequired)
  在lambda_method(Closure,IServiceProvider,Object [])
  在Microsoft.AspNetCore.Mvc.Controllers.ControllerActivatorProvider。&lt;&gt; c__DisplayClass4_0.b__0(ControllerContext controllerContext)
  在Microsoft.AspNetCore.Mvc.Controllers.ControllerFactoryProvider。&lt;&gt; c__DisplayClass5_0.g__CreateController0(ControllerContext controllerContext)
  在Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State&amp; next,Scope&amp; scope,Object&amp; state,Boolean&amp; isCompleted)
  在Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__14.MoveNext()
  ---从抛出异常的先前位置开始的堆栈跟踪结束---

     

at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
  在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)
  在Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.d__22.MoveNext()
  ---从抛出异常的先前位置开始的堆栈跟踪结束---

     

at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
  在Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext context)
  在Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State&amp; next,Scope&amp; scope,Object&amp; state,Boolean&amp; isCompleted)
  在Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.d__17.MoveNext()
  ---从抛出异常的先前位置开始的堆栈跟踪结束---

     

at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
  在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)
  在Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.d__15.MoveNext()
  ---从抛出异常的先前位置开始的堆栈跟踪结束---

     

at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
  在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)
  在Microsoft.AspNetCore.Builder.RouterMiddleware.d__4.MoveNext()
  ---从抛出异常的先前位置开始的堆栈跟踪结束---

     

at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
  在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)
  在Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.d__7.MoveNext()

可能是什么问题?有什么想法吗?

P.S。 Management Studio,DataGrip等数据库工具成功连接到此服务器

1 个答案:

答案 0 :(得分:1)

问题与SQL Server没有关系。

相关位是:

  

System.TypeLoadException:无法加载类型   'Microsoft.EntityFrameworkCore.Infrastructure.RelationalEventId'来自   程序集'Microsoft.EntityFrameworkCore.Relational,Version = 2.0.0.0,   Culture = neutral,PublicKeyToken = adb9793829ddae60'。

检查您是否拥有所有NuGet软件包的正确版本。