Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架迁移-未迁移的列_C#_Entity Framework_Entity Framework Migrations - Fatal编程技术网

C# 实体框架迁移-未迁移的列

C# 实体框架迁移-未迁移的列,c#,entity-framework,entity-framework-migrations,C#,Entity Framework,Entity Framework Migrations,我在实体中添加了一个新属性,并运行命令生成新迁移,但生成的迁移不包含任何内容。看起来EF没有检测到列add。为了在迁移中添加列,我还需要做些什么吗?这是我的班级: public class Group { public int Id { get; set; } public int OrganizerId { get; set; } public string Name { get; set; } public string ImageUrl { get; se

我在实体中添加了一个新属性,并运行命令生成新迁移,但生成的迁移不包含任何内容。看起来EF没有检测到列add。为了在迁移中添加列,我还需要做些什么吗?这是我的班级:

 public class Group
{
    public int Id { get; set; }
    public int OrganizerId { get; set; }
    public string Name { get; set; }
    public string ImageUrl { get; set; }

    public bool IsOnline { get; set; }

    public virtual User Organizer { get; set; }
    public virtual ICollection<GroupParticipation> GroupParticipations { get; set; }
    public virtual ICollection<Question> Questions { get; set; }
    public virtual ICollection<Subject>  Subjects{ get; set; }
}
它正确地生成了一个新的迁移,但迁移是这样的:

public partial class AddGroupIsOnline : DbMigration
{
    public override void Up()
    {
    }

    public override void Down()
    {
    }
}
上上下下什么都不做。它应该加上我的财产,我的假设正确吗

你知道会发生什么吗

谢谢你的帮助

好的,所以我找到了“问题”。基本上,在我在组类中添加IsOnline属性之后,自动迁移已经发生了。因此,当我运行
addmigration AddGroupIsOnline
时,没有检测到任何更改(因为它已经被自动迁移更改)

最后,我通过查看数据库表找到了答案,该列已经存在。然后我查看了迁移表,该表在激活DB迁移后创建,我发现了以下行:

然后,我删除了IsOnline列,从数据库中删除了自动迁移记录,然后重新运行:

Add-Migration AddGroupIsOnline
结果如下:

public partial class AddGroupIsOnline : DbMigration
{
    public override void Up()
    {
        AddColumn("dbo.Groups", "IsOnline", c => c.Boolean(nullable: false));
    }

    public override void Down()
    {
        DropColumn("dbo.Groups", "IsOnline");
    }
}
因此,我在这里的自我提示是:如果迁移中没有显示任何内容,那么就没有要迁移的内容。在[\uu MigrationHistory]表中验证数据库和自动迁移

public partial class AddGroupIsOnline : DbMigration
{
    public override void Up()
    {
        AddColumn("dbo.Groups", "IsOnline", c => c.Boolean(nullable: false));
    }

    public override void Down()
    {
        DropColumn("dbo.Groups", "IsOnline");
    }
}