我在Agency
模型中定义了以下属性:
public int AgencyCapturedById { get; set; }
public User AgencyCapturedBy { get; set; }
当我尝试运行Add-Migration
命令时,出现以下错误:
AgencyCapturedById:名称:类型中的每个属性名称必须是唯一的。 物业名称' AgencyCapturedById'已定义。
首先,如果它已在类Agency
的其他位置定义,则项目将无法构建,然后搜索整个解决方案,对于文件类型*.*
,术语AgencyCapturedById
只产生一个结果,即声明它的上面一行。 EF哪里可以找到另一个相同的财产名称?它甚至不像我之前使用它并将其删除,所以我可能会在某处困扰组装。
答案 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; }
}