Сбой EF Core, таблица уже создана - PullRequest
0 голосов
/ 13 ноября 2018

Вот мой класс DbContext

public class BlogContext : DbContext
{
    public BlogContext (DbContextOptions<BlogContext> options)
        : base(options)
    { }
    public DbSet<User> Users { get; set; }
    public DbSet<Post> Posts { get; set; }
    public DbSet<Comment> Comments  { get; set; }
}

А вот команды, которые я ввожу в консоль самородка, пока не появится ошибка

PM> add -igration AddNotNull
Версия инструментов EF Core '2.1.1-rtm-30846' старше, чем во время выполнения '2.1.3-rtm-32065'. Обновите инструменты для последних функций и исправлений ошибок. Microsoft.EntityFrameworkCore.Infrastructure [10403] Entity Framework Core 2.1.3-rtm-32065 инициализировал «BlogContext» с помощью поставщика «Microsoft.EntityFrameworkCore.SqlServer» с параметрами: Нет Чтобы отменить это действие, используйте Remove-Migration.
PM> update-database
Версия инструментов EF Core '2.1.1-rtm-30846' старше, чем во время выполнения '2.1.3-rtm-32065'. Обновите инструменты для последних функций и исправлений ошибок. Microsoft.EntityFrameworkCore.Infrastructure [10403] Entity Framework Core 2.1.3-rtm-32065 инициализировал «BlogContext» с помощью поставщика «Microsoft.EntityFrameworkCore.SqlServer» с параметрами: Нет Microsoft.EntityFrameworkCore.Database.Command [20101] Выполненная команда DbCommand (11 мс) [Parameters = [], CommandType = 'Text', CommandTimeout = '30 '] SELECT OBJECT_ID (N '[__EFMigrationsHistory]'); Microsoft.EntityFrameworkCore.Database.Command [20101] Выполненная команда DbCommand (3 мс) [Parameters = [], CommandType = 'Text', CommandTimeout = '30 '] SELECT OBJECT_ID (N '[__EFMigrationsHistory]'); Применение миграции '20181113132251_AddNotNull'. Microsoft.EntityFrameworkCore.Database.Command [20101] Выполнено DbCommand (7 мс) [Parameters = [], CommandType = 'Text', CommandTimeout = '30 '] SELECT [MigrationId], [ProductVersion] FROM [__EFMigrationsHistory] ЗАКАЗАТЬ [MigrationId]; Microsoft.EntityFrameworkCore.Migrations [20402] Применение миграции '20181113132251_AddNotNull'. Не удалось выполнить команду DbCommand (5 мс) [Parameters = [], CommandType = 'Text', CommandTimeout = '30 ']

CREATE TABLE [Users] (
[IDUser] int NOT NULL IDENTITY,
[Username] nvarchar(max) NOT NULL,
[Password] nvarchar(max) NOT NULL,
CONSTRAINT [PK_Users] PRIMARY KEY ([IDUser]));

System.Data.SqlClient.SqlException (0x80131904): в базе данных уже есть объект с именем «Пользователи». в System.Data.SqlClient.SqlConnection.OnError (исключение SqlException, логическое breakConnection, действие 1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action 1 wrapCloseInAction) в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (TdsParserStateObject stateObj, логический callerHasConnectionLock, логический asyncClose) в System.Data.SqlClient.TdsParser.TryRun (RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean) в System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds (String methodName, логический асинхронный, тайм-аут Int32, логический асинхронный) в System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery (TaskCompletionSource 1 completion, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite, String methodName) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.Execute(IRelationalConnection connection, DbCommandMethod executeMethod, IReadOnlyDictionary 2 параметрValues) в Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.ExecuteNonQuery (соединение IRelationalConnection, IReadOnlyDictionary 2 parameterValues) at Microsoft.EntityFrameworkCore.Migrations.MigrationCommand.ExecuteNonQuery(IRelationalConnection connection, IReadOnlyDictionary 2 параметрValues) в Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor.ExecuteNonQuery (IEnumerable`1igrationCommands, соединение IRelationalConnection) в Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate (String targetMigration) в Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase (String targetMigration, String contextType) в Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase. <> c__DisplayClass0_1. <. ctor> b__0 () в Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute (Действие действия) ClientConnectionId: 123d7ce8-1ece-4ad9-aa48-bd44c7179be1 Номер ошибки: 2714, состояние: 6, класс: 16 В базе данных уже есть объект с именем «Пользователи».

Все, что я сделал, это добавил [Required ()] в большинство моих полей. И извините за форматирование. SO считает, что таблица создания является блоком кода в этой цитате ..

РЕДАКТИРОВАТЬ: ответ на проблему заключается в том, что метод Database.EnsureCreated () создает базу данных без какой-либо миграции, отключает (запрещает?) Миграцию, поэтому я не смог создать никаких миграций.

...