Warm tip: This article is reproduced from serverfault.com, please click

c#-asp.net CORE迁移生成为空

(c# - asp.net CORE Migrations generated empty)

发布于 2017-08-28 09:09:24

我正在尝试按照教程添加从IdentityDbContext生成的迁移(第二个迁移)IdentityUser
当我运行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重新创建它,并生成了看起来正确的迁移,但是愚蠢的是,我删除了它,因为它的名称错误,并且自重新创建以来就不再起作用。

Questioner
sagi
Viewed
0
Jerodev 2017-08-28 17:17:21

你的migrations文件夹应包含一个WorldContextModelSnapshot.cs,该文件包含整个数据库的定义。如果模型已在此文件中定义,则它将不再出现在新的迁移中。

如果要再次生成迁移,请从此文件中删除模型,然后再次生成迁移。