簡體   English   中英

無法連接到 aspnet core webapi 中的 Oracle Db

[英]Unable to connect to Oracle Db in aspnet core webapi

我使用 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());
    });
}

這是您使用的包中的一個錯誤,它使用已修改的內部實體框架代碼,現在它不再正常工作。

請參閱 Pomelo.EntityFrameworkCore.MySql 包的類似問題,其中 EF 開發人員回應:

@AdamDotNet 感謝您報告此事。 這是因為 MySQL 提供程序正在使用 EF Core 內部代碼——我為此提交了這個問題:PomeloFoundation/Pomelo.EntityFrameworkCore.MySql#497

從 EF 方面,我們將在分類中討論是否將此更改還原為內部代碼,但長期解決方案是提供商停止使用內部代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM