【问题标题】:How to use migrations after adding a Key attribute to a property?将 Key 属性添加到属性后如何使用迁移?
【发布时间】:2014-11-04 12:22:46
【问题描述】:

包管理器控制台:

在模型生成过程中检测到一个或多个验证错误:

p6.DAL.Password: : EntityType 'Password' 没有定义键。定义 此 EntityType 的键。密码:EntityType:EntitySet “密码”基于没有定义键的“密码”类型。

班级密码:

public class Password
{
    [Key]
    public int PasswordID { get; set; }
    public string PasswordName { get; set; }
    public string IsValid { get; set; }
    public virtual Person person { get; set; }

}

【问题讨论】:

  • 您能提供更多信息吗?您是否使用[Key] 添加了一个新属性,或者您是否装饰了一个现有属性?你能告诉我们你的模型吗?
  • 我已经装饰了一个现有的财产,这就是他抛出这个错误的原因。
  • 您在使用自动迁移吗?如果是这样,-force 可能会有所帮助。查看我的答案和指向我的另一个答案的链接(不是该页面上唯一的答案,所以请往下看)。

标签: entity-framework asp.net-mvc-5


【解决方案1】:

尝试像这样使用-force

Update-database -verbose -force -ConfigurationTypeName Configuration 

您可以将 "Configuration" 替换为您的配置名称。

我的回答可能会对您有所帮助:

Entity Framework 6.1 delete a column

【讨论】:

    【解决方案2】:

    如果我明白的话。您要做的是迁移添加新属性的数据库。在这种情况下,请运行以下命令:

    更新数据库

    【讨论】:

    • 但这就是我想要做的。我正在尝试添加迁移,这就是他给我的 eroor。所以我什至不能更新数据库。
    • 在您的第一个问题中。有密码和密码。您是复制粘贴该错误还是手动编写的。我的意思是,也许您将某些内容从 p 更改为 P..No?
    猜你喜欢
    • 2014-09-15
    • 2018-07-18
    • 1970-01-01
    • 2013-09-02
    • 2022-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 2019-01-02
    相关资源
    最近更新 更多