Консольное приложение ASP.NET 5 (пакет) - как создать DBContext из строки подключения?

Я пытаюсь создать DBContext из строки подключения в ядре .net. Раньше это работало с .net 4.5:

public class MyContext : DbContext
{
   internal MYContext(string connectionString) : base(connectionString){}
}

Теперь я получаю сообщение об ошибке, что базовый класс (DBContext) не имеет конструктора, принимающего строку.

Любые идеи?


person f0rt    schedule 23.11.2015    source источник


Ответы (1)


DbContext больше не имеет этого конструктора. Вы можете указать строку подключения в OnConfiguring перегрузке метода:

public class BloggingContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {         
        optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=EFGetStarted.ConsoleApp.NewDb;Trusted_Connection=True;");

    }
}

https://ef.readthedocs.org/en/latest/getting-started/full-dotnet/new-db.html

UseSqlServer - это метод для DbContextOptionsBuilder

person Anton Sizikov    schedule 23.11.2015
comment
Я вижу следующее обозначение метода: защищенное переопределение void OnConfiguring (DbContextOptionsBuilder optionsBuilder) И DbContextOptionsBuilder / DbContextOptions не имеют методов .UseSQLServer (). Я использую EF 7 RC. Что я делаю неправильно? - person f0rt; 24.11.2015
comment
Итак, как передать строку подключения? - person f0rt; 24.11.2015
comment
Объединение DBContextOptionsBuilder, а не DBContextOptions. - person Anton Sizikov; 24.11.2015
comment
Пример будет оценен. Как я уже сказал, я не вижу DbContextOptionsBuilder.UseSqlServer (). - person f0rt; 24.11.2015
comment
Вы установили пакет NuGet EntityFramework.MicrosoftSqlServer? - person Anton Sizikov; 24.11.2015
comment
Я только что добавил. Теперь я вижу метод расширения. Спасибо. - person f0rt; 24.11.2015