Проблема строки подключения ядра .Net Core 2 EF - PullRequest
0 голосов
/ 05 октября 2018

это мой appsettings.json

 "ConnectionStrings": {
    "Circolari": "Server=abcde;Database=Circolari;Trusted_Connection=True;"
  }

и это мой startup.cs

 public Startup(IConfiguration configuration, IHostingEnvironment env)
 {
        Configuration = configuration;
        IConfigurationBuilder configurationBuilder = new ConfigurationBuilder()
            .SetBasePath(env.ContentRootPath)
            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
        Configuration = configurationBuilder.Build();
 }


 // This method gets called by the runtime. Use this method to add services to the container.

    public void ConfigureServices(IServiceCollection services)
    {
        //Circolari
        string connectoionString = Configuration.GetConnectionString("Circolari");
        services.AddDbContext<CircolariContext>(options => options.UseSqlServer(connectoionString));
        services.AddMvc();
    }

, поэтому, когда я делаю запрос

using (CircolariContext db = new CircolariContext(new DbContextOptions<CircolariContext>()))
{
   List<Argomenti> listaArgomenti = db.Argomenti.ToList();
}

iвозникла проблема: во время обработки запроса произошло необработанное исключение.

InvalidOperationException: использовалась именованная строка соединения, но имя «Circolari» не было найдено в конфигурации приложения.Обратите внимание, что именованные строки подключения поддерживаются только при использовании IConfiguration и поставщика услуг, например в типичном приложении ASP.NET Core.См. https://go.microsoft.com/fwlink/?linkid=850912 для получения дополнительной информации.

Microsoft.EntityFrameworkCore.Storage.Internal.NamedConnectionStringResolverBase.ResolveConnectionString (string connectionString)

Может кто-нибудь помочь мне, пожалуйста?

1 Ответ

0 голосов
/ 24 октября 2018

Наконец-то я нашел решение своей проблемы:

теперь в ядре asp.net все должно быть введено, так что вы можете получить контекст вашей БД через ServiceProvider (как сказал мне компилятор)

//this is the constructor
public EfGiacenzeRepo(IServiceProvider serviceProvider)
{
    _serviceProvider = serviceProvider;
}


//this is the method
using (_aspContext = _serviceProvider.GetService<aspContext>())
{
    listaGiacenze = _aspContext.TabGiacenza.ToList();
}
...