Вот мой класс 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 () создает базу данных без какой-либо миграции, отключает (запрещает?) Миграцию, поэтому я не смог создать никаких миграций.