Задать вопрос
NikFaraday
@NikFaraday
Student full-stack Developer

Как подключить Entity Framework Core к Windows Forms C# .Net Core?

Здравствуйте, у меня возникла потребность создать базу данных на Windows Forms именно через Entity Framework Core.
Я desktop'ными приложениями я давно не имел дело, тем более не подключал туда БД.

Я попробовал перенести пример ApplicationContext из проекта asp.NET Core и дать миграцию, в консоль диспетчера пакетов выбило "Build Failder" без объяснения причины ошибки. Пример ApplicationContext ниже на скриншоте

public class UsersContext : DbContext
    {
        DbSet<AddressEntity> Addresses { get; set; }
        DbSet<WorkerEntity> Workers { get; set; }

        public UsersContext(DbContextOptions<UsersContext> options) : base(options)
        {
            Database.Migrate();
        }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlServer(@"Data Source=localhost;Database=LabDb;Trusted_Connection=True;");
        }
    }


Как мне решить данную проблему ?

Upd: Поменял скриншот, у меня вместо Database.Migrate() стоило .EnsureCreate(), но это всё равно ничего не решает и ошибка та же

Upd2: Пересоздал класс ApplicationContext на UsersContext, при попытке миграции выдаёт следующую ошибку (На скрине ниже)

6184f8e8da87f189686205.png
  • Вопрос задан
  • 182 просмотра
Подписаться 1 Средний 6 комментариев
Решения вопроса 1
NikFaraday
@NikFaraday Автор вопроса
Student full-stack Developer
Ответом оказалось достаточно интересная вещь. Попробовав запустить проект и в конструкторе формы вызвать полуголый конструктор класса конфигурации ApplicationDbContext (Имя новое ибо пересоздавал класс), компилятор требовал реализовать связи между сущностями, что потом же и оказалось верным решением.

Имею ввиду, что где-то были криво прописаны связи между таблицами, но пакетный менеджер мне об этом не сообщил... Точнее, он вообще мне ничего конкретного не сообщил

У меня всё )
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
В upd2 есть ссылка, как решить твою проблему.
Там описано, как сделать design time connection factory, чтобы ef мог нагенерить код
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы