C# EF核心迁移失败,表已创建

C# EF核心迁移失败,表已创建,c#,ef-core-2.1,C#,Ef Core 2.1,这是我的DbContext类 public class BlogContext : DbContext { public BlogContext (DbContextOptions<BlogContext> options) : base(options) { } public DbSet<User> Users { get; set; } public DbSet<Post> Posts { get; set;

这是我的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; }
}
System.Data.SqlClient.SqlException(0x80131904):数据库中已存在名为“Users”的对象。 位于System.Data.SqlClient.SqlConnection.OneError(SqlException异常、布尔断开连接、Action
1 wrapCloseInAction)
位于System.Data.SqlClient.SqlInternalConnection.OneError(SqlException异常、布尔断开连接、操作
1 wrapCloseInAction) 位于System.Data.SqlClient.TdsParser.ThroweException和Warning(TdsParserStateObject StateObjectStateObj、布尔调用方连接锁、布尔异步关闭) 位于System.Data.SqlClient.TdsParser.TryRun(RunBehavior RunBehavior、SqlCommand cmdHandler、SqlDataReader dataStream、BulkCopySimpleResultSet bulkCopyHandler、TdsParserStateObject stateObj、Boolean和dataReady) 位于System.Data.SqlClient.SqlCommand.RunExecuteOnQueryTds(字符串方法名、布尔异步、Int32超时、布尔异步写入) 位于System.Data.SqlClient.SqlCommand.InternalExecuteOnQuery(TaskCompletionSource
1完成、布尔sendToPipe、Int32超时、布尔asyncWrite、String methodName)
位于System.Data.SqlClient.SqlCommand.ExecuteOnQuery()处
在Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.Execute(IRelationalConnection连接、DbCommandMethod executeMethod、iRadonlyDictionary
2个参数值) 位于Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.ExecuteOnQuery(IRelationalConnection连接,iRelationalDiactionary
2参数值)
位于Microsoft.EntityFrameworkCore.Migrations.MigrationCommand.ExecuteOnQuery(IRelationalConnection连接,iRelationalDYDictionary
2个参数值) 位于Microsoft.EntityFrameworkCore.Migrations.Internal.MigrationCommandExecutor.ExecutionQuery(IEnumerable`1 migrationCommands,IRelationalConnection) 位于Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(字符串targetMigration) 位于Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration,String contextType) 在Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.c__DisplayClass0_1.b__0()中 位于Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(操作) 客户连接ID:123d7ce8-1ece-4ad9-aa48-bd44c7179be1 错误号:2714,状态:6,类别:16 数据库中已存在名为“Users”的对象

我所做的只是将[Required()]添加到我的大多数字段中。 抱歉格式化了。所以认为create表是这个引号中的一个代码块


编辑:问题的症结在于Database.EnsureCreated()方法创建数据库时没有任何迁移,任何迁移都会禁用(拒绝?)迁移,因此我无法创建任何迁移。

请尝试运行
更新数据库-verbose
。这样,您可能会在控制台输出中看到其他错误。另外:很奇怪,EF想要重新创建您的表。您的
\uu MigrationHistory
表中是否存在以前的迁移?@nilsK无法添加-verbose文本,因为SO再次认为我在那里有代码,我现在在混乱中找不到这些代码…@nilsK-表中没有以前的迁移。好的,在输出中没有更多信息。。。你检查过你的迁移历史吗?另外,EF Core tools版本“2.1.1-rtm-30846”比运行时版本“2.1.3-rtm-32065”旧,那么该警告如何?您可以更新该包吗?在没有以前的迁移时,您是如何创建该表的?手动?当使用代码优先的概念时,您将需要使用EF做(某种程度上)所有事情<代码>\u迁移历史记录由EF用于分析已完成的操作。当EF不知道创建了一个表时,它会尝试创建它。这就是上面的错误消息的原因,其中指出数据库中已经有一个名为“Users”的对象。
CREATE TABLE [Users] (
[IDUser] int NOT NULL IDENTITY,
[Username] nvarchar(max) NOT NULL,
[Password] nvarchar(max) NOT NULL,
CONSTRAINT [PK_Users] PRIMARY KEY ([IDUser]));