我有一个在3个POCO对象中继承的抽象类:
public abstract class BaseObject
{
public virtual int Id { get; set; }
}
public class Post : BaseObject
{
public string Name { get; set; }
public virtual ICollection<PostCategory> PostCategory { get; set; }
}
public class Category : BaseObject
{
public string Name { get; set; }
public virtual ICollection<PostCategory> PostCategory { get; set; }
}
public class PostCategory
{
[Key]
[Column("Id", Order = 0)]
public int PostId { get; set; }
[Key]
[Column("Id", Order = 1)]
public int CategoryId { get; set; }
public string Value { get; set; }
public virtual Post Post { get; set; }
public virtual Category Category { get; set; }
}
但是,每当我在Package Manager Console中执行'add-migration'时,我都会收到错误:
指定的架构无效。错误:(30,6):错误0019:每个 类型中的属性名称必须是唯一的。物业名称'Id'已经存在 定义
基本上抱怨ColumnAttribute
在Id
对象中具有相同的属性名称(PostCategory
属性)。
我需要属性名称与创建泛型Repo类中使用的泛型类相同。这就是我在抽象课中拥有Id的原因。但是,这给了我CF迁移部分的错误。有办法解决这个问题吗?
谢谢!
答案 0 :(得分:0)
ColumnAttribute
属性设置SQL Server中生成的名称。显然,Id
列无法生成两次。
只需删除ColumnAttribute
,即可让服务器安静地生成PostCategory
表。