实体框架关键字未定义。

3
我有一个像这样的类
     public class Phone : ItemBase
    {
        public virtual string Model { get; set; }

        public virtual decimal Price { get; set; }

        [ScaffoldColumn(false)]
        public virtual string ImagePath { get; set; }

        public virtual string Network { get; set; }

        [DisplayName("Dimensions")]
        public virtual string BodyDimension { get; set; }
}

并且一个像这样的基类

 public class ItemBase
{
    [ScaffoldColumn(false)]
    [Key]
    public virtual long ItemID;

    [ScaffoldColumn(false)]
    public virtual DateTime CreatedDate { get; set; }

    [ScaffoldColumn(false)]
    public virtual DateTime ModifiedDate { get; set; }
}

这个关键字是在基类中定义的,但EF说:

手机::实体类型“手机”未定义关键字。 为实体类型定义关键字。

我应该将关键字段移动到Phone类中吗? 最好的解决方案是什么?

1个回答

2
  1. 不需要在ItemId字段上标记虚拟
  2. ItemId属性替换为字段。

类似这样:

    public class ItemBase
    {
        [ScaffoldColumn(false)]
        [Key]
        public long ItemID {get; set;}

        [ScaffoldColumn(false)]
        public virtual DateTime CreatedDate { get; set; }

        [ScaffoldColumn(false)]
        public virtual DateTime ModifiedDate { get; set; }
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接