EF迁移时出现重复的属性名称错误

时间:2016-06-04 16:01:46

标签: c# entity-framework ef-migrations

我在Agency模型中定义了以下属性:

public int AgencyCapturedById { get; set; }
public User AgencyCapturedBy { get; set; }

当我尝试运行Add-Migration命令时,出现以下错误:

  

AgencyCapturedById:名称:类型中的每个属性名称必须是唯一的。   物业名称' AgencyCapturedById'已定义。

首先,如果它已在类Agency的其他位置定义,则项目将无法构建,然后搜索整个解决方案,对于文件类型*.*,术语AgencyCapturedById只产生一个结果,即声明它的上面一行。 EF哪里可以找到另一个相同的财产名称?它甚至不像我之前使用它并将其删除,所以我可能会在某处困扰组装。

1 个答案:

答案 0 :(得分:0)

可能是由于覆盖了命名约定吗?例如,我可以使用以下代码生成此错误:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Properties()
                            .Where(p => p.Name == "Id")
                            .Configure(p => p.IsKey().HasColumnName(p.ClrPropertyInfo.ReflectedType == null ? "Id" : p.ClrPropertyInfo.ReflectedType.Name + "Id"));
}

public class Agency
{
    public int Id { get; set; }
    [Column("UserId")]
    public int UserId { get; set; }
    public User AgencyCapturedBy { get; set; }
}

[ComplexType]
public class User
{
    public int Id { get; set; }
}