我在 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; }
}
但是,每当我在包管理器控制台中执行“添加迁移”时,都会出现错误:
指定的架构无效。错误:(30,6):错误 0019:类型中的每个属性名称必须是唯一的。已定义属性名称“Id”。
基本上抱怨ColumnAttribute
具有相同的属性名称(对象Id
中的属性PostCategory
)。
我需要属性名称与创建通用 Repo 类中使用的通用类相同。这就是为什么我在抽象类中有 Id 的原因。但是,这给了我 CF 迁移部分的错误。有没有办法解决这个问题?
谢谢!