【发布时间】:2012-12-12 07:16:26
【问题描述】:
我有一个场景,我想更改实体中的主键名称并能够运行 update-database -force。当我尝试时,请参阅下面的代码和错误。
实体是:
public class Team
{
[Key]
[HiddenInput(DisplayValue = false)]
public virtual int Id { get; set; }
[Display(Name = "Full Name:")]
public virtual string Name { get; set; }
}
实体更改为:
public class Team
{
[Key]
[HiddenInput(DisplayValue = false)]
public virtual int TeamId { get; set; }
[Display(Name = "Full Name:")]
public virtual string Name { get; set; }
}
当我运行Update-database -Force 时出现以下错误。
Multiple identity columns specified for table 'Teams'. Only one identity column per table is allowed.
这是一个命名约定的问题,当我稍后引用它时,我需要将它作为 TeamId,只是 Id 与子实体类冲突。
关于我如何成功地做到这一点的任何想法?
【问题讨论】:
-
您可以使用 [Column("Id")] 属性将 TeamId 映射到主键 Id,或者是否需要将列名和 POCO 变量都命名为 TeamId?
-
@marvc1 我正在尝试你的建议,我会在一分钟内通知你
-
@marvc1 嘿伙计,你的建议似乎奏效了,我看到你在下面给出了答案。
标签: c# entity-framework-5 entity-framework-migrations