我尝试从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,Action1 sqlServerOptionsAction)
2 optionsAction)
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
在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite factoryCallSite,ServiceProvider provider)
在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(IServiceCallSite callSite, TArgument argument)
2.VisitCallSite(IServiceCallSite callSite,TArgument参数)
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
在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite,ServiceProvider provider)
在Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(IServiceCallSite callSite, TArgument argument)
2.VisitCallSite(IServiceCallSite callSite,TArgument参数)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor
在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等数据库工具成功连接到此服务器
答案 0 :(得分:1)
问题与SQL Server没有关系。
相关位是:
System.TypeLoadException:无法加载类型 'Microsoft.EntityFrameworkCore.Infrastructure.RelationalEventId'来自 程序集'Microsoft.EntityFrameworkCore.Relational,Version = 2.0.0.0, Culture = neutral,PublicKeyToken = adb9793829ddae60'。
检查您是否拥有所有NuGet软件包的正确版本。