options.UseOracle () не доступен в EF Core - PullRequest
0 голосов
/ 24 октября 2018

Использование EF Core с Oracle.ManagedDataAccess.Core (2.18.3)

Невозможно вызвать метод "options.UseOracle" при попытке добавить контекст БД.

Компилятор выбрасываетошибка: 'DbContextOptionsBuilder' не содержит определения для 'UseOracle', и нет доступного метода расширения 'UseOracle', принимающего первый аргумент типа 'DbContextOptionsBuilder' (вы пропустили директиву using или ссылку на сборку?)

Пожалуйста, смотрите код ниже, это последняя строка, которая не компилируется, Моя ссылка на nuget включает Oracle.ManagedDataAccess.Core (2.18.3)

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using EfGetStarted.AspNetCore.NewDb.Models;
using Microsoft.EntityFrameworkCore;
using Oracle.ManagedDataAccess.Client;

namespace EfGetStarted.AspNetCore.NewDb
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure<CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });


            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);



            var ora_conn = "User Id=xyz;Password=pwd;Data Source=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = ORA01)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = ora1)))";
            services.AddDbContext<BloggingContext>(options => options.UseOracle(ora_conn));


        }

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019

Мне удалось установить его после загрузки пакета oracle.entityframeworkcore.2.18.0-beta3.nupkg и добавления «IncludePrerelease»:

Install-Package Oracle.EntityFrameworkCore -IncludePrerelease -Source C:\Temp\

Все работает нормально, но при попыткечтобы получить записи по id, например: Table.SingleOrDefaultAsync(m => m.Id == id); Я получаю сообщение об ошибке: (команда sql неправильно завершилась)

0 голосов
/ 04 апреля 2019

Попробуйте

PM> Install-Package Oracle.EntityFrameworkCore -Version 2.18.0-beta3
...