EF 5派生类具有不同的键名

时间:2012-08-08 14:16:16

标签: inheritance frameworks entity

我首先在EF数据库中遇到以下情况:

    public class BaseClass
    {
        [Key]
        public int Id {get;set;}
        /* other properties */
    }

    public class DerivedClass : BaseClass
    {
        [NotMapped]
        public int Id {get;set;}
        [Key]
        public int DerivedId {get;set;}
        /* other properties */
    }

此时,上面的代码无效,因为我尝试取消映射Id属性,将DerivedId声明为键。有一个解决方案吗?我知道最好的解决方案是将DerivedId列重命名为数据库中的Id,但我不能这样做,因为数据库已经存在于第三方并且无法修改。

如果我没错,在EF 4.x中缺少这种方法,我发布这个希望它是在5.0中用.NET 4.5实现的。

谢谢, 利西

1 个答案:

答案 0 :(得分:0)

您是否可以创建一个引用基类中Id的新属性?

[NotMapped]
public int DerivedId
{
    get { return Id; }
    set { Id = value; }
}