我是.net核心的新手,所以问题可能很简单,但我不知道,如何解决它…
尝试在我的代码中使用MySQL数据库会在select上给出一个MissingMethodException.
public List<Message> GetMessages(String chatHash,Int32 count = 0) { // exception is generated here return count == 0 ? Context.Messages() .Where(x => x.Chat.Hash.Equals(chatHash)) // string compaction .Include(x => x.Attachments) .ToList() : Context.Messages .Where(x => x.Chat.Hash.Equals(chatHash)) .Include(x => x.Attachments) .Take(count) .ToList(); }
示例被简化了一点,不显示存储库和其他一些包装.
例外情况如下
信息:
Method not found: 'Void Microsoft.EntityFrameworkCore.Query.ExpressionTranslators.Internal.EndsWithTranslator..ctor()'.
堆栈跟踪:
at MysqL.Data.Entity.MysqLCompositeMethodCallTranslator..ctor(ILogger`1 logger) --- End of stack trace from prevIoUs location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptiondispatchInfo.Throw() at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite,ServiceProvider provider) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite,ServiceProvider provider) at Microsoft.Extensions.DependencyInjection.ServiceProvider.<>c__displayClass16_0.<RealizeService>b__0(ServiceProvider provider) at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetrequiredService(IServiceProvider provider,Type serviceType) at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetrequiredService[T](IServiceProvider provider) at Microsoft.EntityFrameworkCore.Infrastructure.RelationalServiceCollectionExtensions.<>c.<AddRelational>b__0_4(IServiceProvider p) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite,ServiceProvider provider) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite,Type serviceType) at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetrequiredService[T](IServiceProvider provider) at Microsoft.EntityFrameworkCore.Infrastructure.EntityFrameworkServiceCollectionExtensions.<>c.<AddQuery>b__1_8(IServiceProvider p) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite,Type serviceType) at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetrequiredService[T](IServiceProvider provider) at Microsoft.EntityFrameworkCore.Infrastructure.EntityFrameworkServiceCollectionExtensions.<>c.<AddQuery>b__1_4(IServiceProvider p) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite,Type serviceType) at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetrequiredService[T](IServiceProvider provider) at Microsoft.EntityFrameworkCore.Infrastructure.EntityFrameworkServiceCollectionExtensions.<>c.<AddQuery>b__1_2(IServiceProvider p) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite,Type serviceType) at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetrequiredService[T](IServiceProvider provider) at Microsoft.EntityFrameworkCore.Infrastructure.EntityFrameworkServiceCollectionExtensions.<>c.<AddEntityFramework>b__0_10(IServiceProvider p) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite,ServiceProvider provider) at Microsoft.Extensions.DependencyInjection.ServiceProvider.<>c__displayClass16_0.<RealizeService>b__0(ServiceProvider provider) at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetService[T](IServiceProvider provider) at Microsoft.EntityFrameworkCore.Infrastructure.AccessorExtensions.GetService[TService](IInfrastructure`1 accessor) at Microsoft.EntityFrameworkCore.DbContext.get_QueryProvider() at Microsoft.EntityFrameworkCore.Internal.InternalDbSet`1.<.ctor>b__3_0() at Microsoft.EntityFrameworkCore.Internal.LazyRef`1.get_Value() at Microsoft.EntityFrameworkCore.Internal.InternalDbSet`1.System.Linq.IQueryable.get_Provider() at System.Linq.Queryable.Where[TSource](IQueryable`1 source,Expression`1 predicate) at DesignService.Service.Concrete.ChatService.GetMessages(String chatHash,Int32 count) in D:\DesignService\src\DesignService\Service\Concrete\ChatService.cs:line 23
我的project.json看起来像这样
{ "title": "DesingService","version": "1.0.0-*","runtimes": { "win81-x64": {},"win10-x64": {},"ubuntu.16.04-x64": {} },"buildOptions": { "emitEntryPoint": true,"optimize": true,"debugType": "portable","define": ["USE_MysqL"],"copyToOutput": { "includeFiles": ["Settings.json"] } },"dependencies": { "MailKit": "1.10.0","Microsoft.AspNetCore.Hosting": "1.1.0-preview1-final","Microsoft.AspNetCore.Http.Abstractions": "1.1.0-preview1-final","Microsoft.AspNetCore.Server.Kestrel": "1.1.0-preview1-final","Microsoft.EntityFrameworkCore": "1.1.0-preview1-final","Microsoft.EntityFrameworkCore.Design": "1.1.0-preview1-final","Microsoft.EntityFrameworkCore.sqlServer": "1.1.0-preview1-final","Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview3-final","Microsoft.NETCore.App": "1.1.0-preview1-001100-00","Newtonsoft.Json": "9.0.2-beta1","SapientGuardian.EntityFrameworkCore.MysqL": "7.1.10" },"tools": { "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-preview3-final" },"frameworks": { "netcoreapp1.0": { "imports": "dnxcore50" } } }
虽然,我试图使用官方提供程序MysqL.Data.EntityFrameworkCore,它给出了相同的结果.
也许你可以提出一些建议或建议?
提前致谢,
缺口.
解决方法
问题与sql提供程序有关.它已在当前版本中修复.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。