С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/120: Рейтинг темы: голосов - 120, средняя оценка - 4.82
4 / 5 / 1
Регистрация: 25.05.2012
Сообщений: 262
Записей в блоге: 1
1

Не удает включить миграции в Entity Framework

11.03.2019, 10:08. Показов 22667. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.

Использую Entity Framework 6.2.0.
Проект называется "CrlDownloader".При попытке включить миграции консоль VisualStudion 2017 выдает сообщение:
Bash
1
2
PM> Enable-Migrations -Force
No context type was found in the assembly 'CrlDownloader'.
С выбором в списке "Проект по умолчанию" ошибиться невозможно так как там всего один проект:
Не удает включить миграции в Entity Framework


Выполнил рекомендации из вот этого решения и получил:

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
PM> $a.DefinedTypes
PM> $a = [System.Reflection.Assembly]::LoadFrom("C:\Users\user\source\repos\CrlDownloader\CrlDownloader\bin\Debug\Test.exe")
PM> $a.DefinedTypes
PM> $a.GetTypes()
Исключение при вызове "GetTypes" с "0" аргументами: "Не удается загрузить один или более запрошенных типов. Обратитесь к свойству LoaderExceptions для получения дополнительных сведений."
строка:1 знак:1
+ $a.GetTypes()
+ ~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ReflectionTypeLoadException
 
PM> $Error[0].Exception.InnerException.LoaderExceptions
Не удалось загрузить файл или сборку "Microsoft.EntityFrameworkCore, Version=2.1.4.0, Culture=neutral, PublicKeyToken=adb9793829ddae60" либо одну из их зависимостей. Не удается найти указанный файл.
В менеджере nuget "Microsoft.EntityFrameworkCore, Version=2.1.4.0" не находится - там уже давно более поздняя версия 2.2.2.
Куда копать дальше? Есть ли у кого-то какие-то идеи?


PS:
Данный проект я клонировал из другого проекта и "обрезал" всё лишнее, переименовав из "Test" в "CrlDownloader". Имена вроде бы везде изменил (правил файлы csproj, csproj.user, sln, config). Может быть из-за этого возникает пролема?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.03.2019, 10:08
Ответы с готовыми решениями:

Entity Framework
Здравствуйте, есть проблема с Entity Framework, как источник данных я указал объекты созданные...

Entity Framework and FluentApi
Всем привет. Есть у меня класс модели, описывающий статусы: public class Status { ...

Навигационные свойства в Entity Framework
Всем привет! Помогите разобраться с навигационными свойствами в EF. Уже перечитал и msdn и другие...

Сохранение картинки Entity Framework
Пытаюсь сохранить картинку в базу данных. Использую entity fraemwork. using (AgroFirst db =...

5
Эксперт .NET
17793 / 12944 / 3381
Регистрация: 17.09.2011
Сообщений: 21,226
11.03.2019, 10:12 2
Цитата Сообщение от skitale Посмотреть сообщение
Использую Entity Framework 6.2.0.
Цитата Сообщение от skitale Посмотреть сообщение
В менеджере nuget "Microsoft.EntityFrameworkCore, Version=2.1.4.0" не находится - там уже давно более поздняя версия 2.2.2.
Так вы используете EF 6.2 или EF Core 2.2.2?
Это абсолютно разные вещи, EF Core написан полностью с нуля.

Наверное, в первую очередь стоит определиться с библиотекой, которая должна использоваться.
После чего создать класс, наследующийся от DbContext.
0
4 / 5 / 1
Регистрация: 25.05.2012
Сообщений: 262
Записей в блоге: 1
11.03.2019, 10:28  [ТС] 3
Цитата Сообщение от kolorotur Посмотреть сообщение
Так вы используете EF 6.2 или EF Core 2.2.2?
использую EF Core 2.2.2, прошу прощения, что ввел в заблуждение.

Цитата Сообщение от kolorotur Посмотреть сообщение
После чего создать класс, наследующийся от DbContext
Класс создан и используется уже давно, вот только всякий раз при добавлении полей в модели программа создает новую базу данных, а мне бы хотелось изменять существующую.
0
Эксперт .NET
17793 / 12944 / 3381
Регистрация: 17.09.2011
Сообщений: 21,226
11.03.2019, 11:24 4
Цитата Сообщение от skitale Посмотреть сообщение
использую EF Core 2.2.2
Тогда не надо использовать команду Enable-Migrations — она в Core не нужна. Используйте сразу Add-Migration.

Цитата Сообщение от skitale Посмотреть сообщение
всякий раз при добавлении полей в модели программа создает новую базу данных, а мне бы хотелось изменять существующую.
Хотелось бы глянуть на код контекста и инициализации.
0
4 / 5 / 1
Регистрация: 25.05.2012
Сообщений: 262
Записей в блоге: 1
11.03.2019, 11:56  [ТС] 5
Хм... странно... Решил проверить может быть у меня что-то не то с самим проектом и создал в том же решении еще один проект для теста. Установил в него EF Core, EntityFramework (без него команад Enable-Migrations не хотела работать), а затем создал класс Context : System.Data.Entity.DbContext. После этого команда Enable-Migrations нашла контекст и выполнилась (хоть и с ошибками)

Неужели у EF Core не реализована возможность создавать миграции?

Добавлено через 36 секунд
Цитата Сообщение от kolorotur Посмотреть сообщение
Тогда не надо использовать команду Enable-Migrations — она в Core не нужна. Используйте сразу Add-Migration.
А вот вы об этом и написали

Добавлено через 10 минут
Цитата Сообщение от kolorotur Посмотреть сообщение
Используйте сразу Add-Migration.
Bash
1
2
3
PM> add-migration test
No migrations configuration type was found in the assembly 'CrlDownloader'. (In Visual Studio you can use the Enable-Migrations command from Package Manager Console to add a migrations configuration).
PM>
Цитата Сообщение от kolorotur Посмотреть сообщение
Хотелось бы глянуть на код контекста и инициализации.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using Microsoft.EntityFrameworkCore;
using System;
using System.Configuration;
 
namespace CrlDownloader
{
    class Db : DbContext
    {
        public DbSet<CrlInfo> CrlInfos { get; set; }
        public DbSet<Log> Logs { get; set; }
        public DbSet<CrlUrl> CrlUrls { get; set; }
        public DbSet<RootCertInfo> RootCertInfos { get; set; }
        public DbSet<DownloadLog> DownloadLog { get; set; }
 
        public Db()
        {
            Database.EnsureCreated();
        }
 
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlite(ConfigurationManager.AppSettings["sqliteConnectionStringTest"]);
        }
 
 
    }
}
0
4 / 5 / 1
Регистрация: 25.05.2012
Сообщений: 262
Записей в блоге: 1
11.03.2019, 12:04  [ТС] 6
Помогла рекомендация отсюда:

Установить пакет Microsoft.EntityFrameworkCore.Tools:
Bash
1
PM> Install-Package Microsoft.EntityFrameworkCore.Tools
А затем создать первую миграцию:
Bash
1
2
3
PM> EntityFrameworkCore\Add-Migration firstMigration
Both Entity Framework Core and Entity Framework 6 are installed. The Entity Framework Core tools are running. Use 'EntityFramework\Add-Migration' for Entity Framework 6.
To undo this action, use Remove-Migration.
В проекте появилась папка Migrations:
Название: 20190311120234.jpg
Просмотров: 780

Размер: 50.9 Кб
0
11.03.2019, 12:04
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.03.2019, 12:04
Помогаю со студенческими работами здесь

Entity framework показ данных по частям
Допустим в таблице содержится большое количество записей(около миллиона) как можно частями выбирать...

Обучающие видеоуроки по C#, WPF, Entity Framework
Уважаемые коллеги, позвольте представить вам обучающие видеокурсы собственного авторства по...

Entity Framework 4 событие полной загрузки
делаю загрузку, но понятно она происходит не сразу, по этому нужно событие когда будет известно...

Установил Entity Framework, entitydatasource отсутствует в панели инструментов
Установил Entity Framework, entitydatasource отсутствует в панели инструментов. Помогите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru