Я только что установил EF 4.3-beta1 для удобства миграции, и я не могу заставить его работать. Я получаю сообщение об ошибке:
PM> Update-Database -Verbose
Using NuGet project 'Project.Domain'.
Using StartUp project 'ProjectWebSite'.
System.InvalidOperationException: No migrations configuration type was found in the assembly 'Project.Domain'.
at System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.FindConfiguration()
at System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.GetMigrator()
at System.Data.Entity.Migrations.Design.ToolingFacade.UpdateRunner.RunCore()
at System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.Run()
No migrations configuration type was found in the assembly 'Project.Domain'.
Я добавил новый столбец в 2 класса EF:
public class MasterInstance
{
public int MasterInstanceId { get; set; }
[Required] public string HostName { get; set; }
[Required] public string Name { get; set; } /* <-- THIS IS NEW */
[Required] public string ConnectionString { get; set; }
public virtual ICollection MasterInstanceLocations { get; set; }
}
И мой DbContext выглядит так:
public class ProjectDontext: DbContext, IProjectContext
{
public IDbSet Installers { get; set; }
public IDbSet MasterInstances { get; set; }
public IDbSet MasterInstanceLocations { get; set; }
}
Есть идеи? Мои классы и контекст EF находятся в отдельной сборке (Project.Domain). Я пробовал запустить базу данных обновлений в контексте как основного веб-сайта, так и проекта домена, и в любом случае получаю ту же ошибку.
- РЕДАКТИРОВАТЬ -
Решение найдено. Оказывается, вам нужно включить миграции для вашего проекта. Вы можете сделать это, запустив Enable-Migrations
в консоли NuGet (убедитесь, что у вас выбран правильный проект - для меня это был проект project.domain).
Это пошаговое руководство предоставляет дополнительную информацию
Даже когда миграция включена, описанное поведение может произойти, если неправильное Проект По умолчанию было выбрано в выпадающем меню Консоль Диспетчера пакетов. Неграфический путь вокруг состоит в том, чтобы развернуть команду, которую Вы используете и определяете корректное название проекта с параметром -ProjectName
Update-Database -Verbose -ProjectName TheCorrectProjectName
, Вы могли бы все еще добраться, предупреждение как
не Может определить действительный проект запуска. Используя проект 'TheCorrectProjectName' вместо этого. Ваш конфигурационный файл и рабочий каталог не могут быть установлены как ожидалось. Используйте-StartUpProjectName параметр для установки того явно.
, Тем не менее, этот дополнительный параметр командной строки решил проблему для меня.
Для меня произошла эта ошибка, потому что мне выбрали неправильный проект в Проекте "Пульта Диспетчера пакетов По умолчанию" в VS2019.