微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 使用.net核心应用程序的MySQL提供程序生成MissingMethodException

我是.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,它给出了相同的结果.

代码使用MS sql服务器进行了测试,运行正常.

也许你可以提出一些建议或建议?

提前致谢,
缺口.

解决方法

问题与sql提供程序有关.它已在当前版本中修复.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐