ASP.NET Core迁移生成了空的内容。

6

我尝试按照教程添加一个由 IdentityDbContextIdentityUser 生成的第二个迁移。
当我运行 dotnet ef migration add <NAME> 命令时,它被添加了,但是 UPDOWN 都是空的。

我发现删除 EFMigrationHistory 表中的数据可以解决这个问题,但是该表没有关于该迁移的任何信息,只有关于已经创建的第一个迁移的信息。我尝试删除所有 .TMP 文件、删除并重新创建迁移。

WorldUser :

namespace TheWorld.Models
{
    public class WorldUser : IdentityUser
    {
        public DateTime FirstTrip { get; set; }
    }
}

WorldContext :

namespace TheWorld.Models
{
    public class WorldContext : IdentityDbContext<WorldUser>
    {
        private IConfigurationRoot _config;
        public WorldContext(IConfigurationRoot config,DbContextOptions options) : base(options)
        {
            _config = config;
        }
        ....

奇怪的是,昨天它不起作用,今天早上我尝试删除所有.TMP文件、迁移并通过CMD重新创建它,它生成了一个看起来正确的迁移,但愚蠢地,我删除了它,因为它的名称错误,而重新创建后它再次不工作。

1个回答

19
您的迁移文件夹应包含一个 WorldContextModelSnapshot.cs 文件,该文件包含整个数据库的定义。如果模型已在此文件中定义,则不会再出现在新迁移中。
如果您想再次生成迁移,请从此文件中删除该模型,并重新生成迁移。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接