EF:存储自动迁移详细信息的位置在哪里?

时间:2014-04-02 08:26:53

标签: entity-framework ef-code-first entity-framework-5 ef-migrations

我在半年后回到这个项目并遇到了一个奇怪的问题。我开始使用新环境,因此那里没有数据库。所有这些都应该从迁移中恢复。我有一堆编码迁移但事实证明有些(可能只有一个)是自动的。尽管如此,我还是将其添加到编码迁移中,现在在数据库恢复期间我收到错误Column names in each table must be unique。我对此表的迁移是:

public partial class AddedUserEntity : DbMigration
{
    public override void Up()
    {
        CreateTable(
            "dbo.Users",
            c => new
                {
                    Id = c.Int(nullable: false, identity: true),
                    UniqueId = c.Guid(nullable: false),
                    Name = c.String(),
                    UserName = c.String(),
                    Password = c.String(),
                    IsAdmin = c.Boolean(nullable: false),
                    Deleted = c.Boolean(nullable:false),
                })
            .PrimaryKey(t => t.Id);

    }

    public override void Down()
    {
        DropTable("dbo.Users");
    }
}

我的User课程是:

public class User
{
    public int Id { get; set; }
    public Guid UniqueId { get; set; }
    public string Name { get; set; }
    public string UserName { get; set; }
    public string Password { get; set; }
    public bool IsAdmin { get; set; }
    public bool Deleted { get; set; }
    public DateTime TimeStamp { get; set; }
}

导致问题的列是Deleted。如果我注释掉行设置Deleted,则会正确恢复整个数据库,而有趣的部分是已删除的列已添加到表TimeStamp属性稍后由另一个代码迁移添加,它可以正常工作。

所以我的问题是EF如何知道应该添加此列?如果仅从Entity类获取它,那么为什么只有这一个属性会导致问题?

0 个答案:

没有答案
相关问题