.NET Core EF 2.1 Scaffolding - DatabaseFirst - Как добавить больше таблиц - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть чистое проектное решение (предназначенное для приложения .NET Core MVC)

У меня есть два объекта - Home.CorePoC.EntityModel и Home.CorePoC.Model Я звоню в dotnet cli из Home.CorePoC.Model.

Идея состоит в том, что я хочу, чтобы частичные классы и логическое отделение от пользовательских атрибутов и атрибутов из базы данных.

Я хочу написать сценарий powershell, который я буду вызывать, когда захочудобавить / удалить некоторые таблицы, столбцы в таблицах и т. д.

В CLI dotnet, когда я первоначально добавляю таблицы, все работает просто отлично:

Scaffold-DbContext "Server=sqlServ2016;Database=TestDb;Persist Security 
Info=False;User ID=admin;Password=admin;" Microsoft.EntityFrameworkCore.SqlServer 
-Tables "Table1","Table2","Table3" -ContextDir "..\Home.CorePoC.EntityModel" 
-OutputDir "TestDB" -force -DataAnnotations -UseDatabaseNames

Теперь, когда я хочу добавить еще большеТаблицы это работает, но у меня есть сообщение об ошибке: «Невозможно добавить« Table4 ». В этой папке уже есть связанный файл с таким именем».Кроме того, я получаю сообщение об ошибке в консоли консоли:

Exception calling "AddFromFile" with "1" argument(s): "A drag operation is already in progress (Exception from HRESULT: 0x80040103)"

Необходимо удалить все файлы, а затем воссоздать его (связанный файл TestContext.cs, который был изначально создан), или существует другой способ избежать этого сообщения об ошибке, котороене критично (я успешно добавил Table4 в мои модели).

Я планирую поместить это утверждение в скрипт powershell, который будет вызываться из папки проекта (где я установил nuget Microsoft.EntityFrameworkCore.Tools (2.1.4))

1 Ответ

0 голосов
/ 04 декабря 2018

Это потому, что он попытается добавить файл Context для Table4, но не сможет, поскольку он уже существует.Уже есть запрос функции для обновления базовых каркасов Entity Framework Core, вместо того чтобы создавать их заново каждый раз.Вам придется каждый раз переопределять сгенерированные объекты, используя флаг -Force

...