无法连接到ASPNET Core WebAPI中的Oracle Db

佩德罗·席尔瓦(Pedro Silva)

我使用webapi模板创建了一个具有dotnet核心的项目。我正在尝试使用Citms.EntityFrameworkCore.Oracle软件包将API与Oracle数据库连接,因为官方软件包不是免费的。但是每次我启动API时,都会遇到以下错误

context.Set<TEntity>();

GenericRepository.cs

public GenericRepository(ApplicationDbContext context)
{
    this.Context = context;
    this.DbSet = context.Set<TEntity>();
}

错误:

System.MissingMethodException: 'Method not found: 'Void Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommandBuilderFactory..ctor(Microsoft.EntityFrameworkCore.Diagnostics.IDiagnosticsLogger`1<Command>, 

启动文件

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

    services.AddDbContext<ApplicationDbContext>(options =>
    {
        //options.UseMySql(Configuration.GetConnectionString("DefaultConnection"));
        options.UseOracle(@"DATA SOURCE = <CONNECTION_STRING>");
    });

    services.AddSwagger();

    //services.AddScoped<IValuesRepository, ValuesRepository>();
    services.AddScoped<IValueService, ValueService>();

    var corsBuilder = new CorsPolicyBuilder();
    corsBuilder.AllowAnyHeader();
    corsBuilder.AllowAnyMethod();
    corsBuilder.AllowAnyOrigin(); 
    corsBuilder.AllowCredentials();

    services.AddCors(options =>
    {
        options.AddPolicy("SiteCorsPolicy", corsBuilder.Build());
    });
}
用户名

那是您使用的程序包中的错误,它使用已被修改的内部Entity Framework代码,现在不再正常工作。

请参阅Pomelo.EntityFrameworkCore.MySql包的类似问题,EF开发人员在其中响应:

@AdamDotNet感谢您举报。发生这种情况是因为MySQL提供程序正在使用EF Core内部代码-我为此提交了此问题:PomeloFoundation / Pomelo.EntityFrameworkCore.MySql#497

从EF方面,我们将分流讨论是否将此更改恢复为内部代码,但是从长远来看,解决方案是提供者停止使用内部代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章