将AddRowNumberSupport添加到实体框架

时间:2020-05-06 23:26:15

标签: entity-framework linq asp.net-core entity-framework-core asp.net-core-webapi

我正在尝试对实体框架核心使用row_number支持

https://www.thinktecture.com/en/entity-framework-core/row_number-support-in-2-1/

我安装了Thinktecture.EntityFrameworkCore.SqlServer软件包,然后将其添加到服务选项中。

services
   .AddDbContext<DemoDbContext>(builder => builder
         .UseSqlServer(Configuration.GetConnectionString("DefaultConnection"), sqlOptions =>
          {
                sqlOptions.AddRowNumberSupport();
          });

试图获取行号:

var query = _context.ChatMessages
                 .Where(o => o.SenderID.Equals("a90566ab-eef7-4f57-8e96-a3b7cc8ce786"))
                 .Select(i => new
                 {
                     i.message,
                     i.ReciverID,
                     RowNumber = EF.Functions.RowNumber(i.ReciverID)
                 }).ToList()

但是我得到了错误:

Could not load type 'Microsoft.EntityFrameworkCore.Query.ExpressionTranslators.IExpressionFragmentTranslator' 
from assembly 'Microsoft.EntityFrameworkCore.Relational, Version=3.1.3.0, Culture=neutral, 
PublicKeyToken=adb9793829ddae60'.

跟踪:

at Thinktecture.SqlServerDbContextOptionsBuilderExtensions.AddRowNumberSupport(SqlServerDbContextOptionsBuilder sqlServerOptionsBuilder, Boolean addRowNumberSupport)
   at Signalr_video_database.Startup.<>c.<ConfigureServices>b__5_7(SqlServerDbContextOptionsBuilder sqlOptions) in C:\DriveD\test\cSharp\signalr db inmemory angular\backend\Signalr_video_database\Signalr_video_database\Startup.cs:line 52
   at Microsoft.EntityFrameworkCore.SqlServerDbContextOptionsExtensions.UseSqlServer(DbContextOptionsBuilder optionsBuilder, String connectionString, Action`1 sqlServerOptionsAction)
   at Signalr_video_database.Startup.<ConfigureServices>b__5_0(DbContextOptionsBuilder options) in C:\DriveD\test\cSharp\signalr db inmemory angular\backend\Signalr_video_database\Signalr_video_database\Startup.cs:line 49
   at Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.<>c__DisplayClass1_0`2.<AddDbContext>b__0(IServiceProvider p, DbContextOptionsBuilder b)
   at Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.CreateDbContextOptions[TContext](IServiceProvider applicationServiceProvider, Action`2 optionsAction)
   at Microsoft.Extensions.DependencyInjection.EntityFrameworkServiceCollectionExtensions.<>c__DisplayClass10_0`1.<AddCoreServices>b__0(IServiceProvider p)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite factoryCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScopeCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScopeCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.<>c__DisplayClass1_0.<RealizeService>b__0(ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ActivatorUtilities.GetService(IServiceProvider sp, Type type, Type requiredBy, Boolean isDefaultParameterRequired)
   at Microsoft.AspNetCore.SignalR.Internal.DefaultHubActivator`1.Create()
   at Microsoft.AspNetCore.SignalR.Internal.DefaultHubDispatcher`1.<OnConnectedAsync>d__6.MoveNext()

0 个答案:

没有答案
相关问题