【问题标题】:EntitySet 'SelectListItems' is based on type 'SelectListItem' that has no keys definedEntitySet 'SelectListItems' 基于没有定义键的类型 'SelectListItem'
【发布时间】:2017-06-14 18:18:00
【问题描述】:

控制器

 public JsonResult menulist()
        {
            try
            {
                if (Session["User_Type"].ToString() != null)
                {
                    var menu = db.menuitems.ToList().Where(d => d.HasAccess.Contains(Session["User_Type"].ToString())).OrderBy(d=>d.Name);
                    return new JsonResult { Data = menu, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
                }
                return new JsonResult { Data = "", JsonRequestBehavior = JsonRequestBehavior.AllowGet };
            }
            catch (Exception ex)
            {
                return new JsonResult { Data = "", JsonRequestBehavior = JsonRequestBehavior.AllowGet };
            }
        }

型号

public class MenuItem
    {
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [Key]
        public int MenuItemId { get; set; }
        public string Name { get; set; }
        public string ActionName { get; set; }
        public string ControllerName { get; set; }
        public string Url { get; set; }
        public bool Disable { get; set; }
        public string HasAccess { get; set; }
        public int ParentMenuId { get; set; }
    }

上下文

public DbSet<MenuItem> menuitems { get; set; }

我在我的数据库中自动生成了MenuItemId 字段,所以我在我的模型中将它定义为键和身份。我仍然收到Key not defined 的错误,并且“SelectListItem”没有定义键。

错误

在模型生成过程中检测到一个或多个验证错误: Demo.Context.SelectListItem: : EntityType 'SelectListItem' 没有定义键。定义此 EntityType 的键。 SelectListItems: EntityType: EntitySet 'SelectListItems' 基于没有定义键的类型 'SelectListItem'。

【问题讨论】:

  • 你发现了吗?

标签: c# asp.net-mvc razor


【解决方案1】:

你可以试试这个吗?

var menu = db.menuitems.Where(d => d.HasAccess.Contains(Session["User_Type"].ToString())).OrderBy(d=>d.Name).ToList();

【讨论】:

  • 它不工作。问题仍然存在。实际上 m 有问题相关的模型验证。为了解决这个问题,我在我的模型中应用了密钥。但无法解决该问题
  • @Priya,您能否显示您实际使用SelectListItem 的代码,或者告诉您在哪一行抛出异常?
  • 在控制器中与 db 通信时引发异常。 db.menuitems.ToList() 实际上是在抛出异常
  • @Priya,这个模型是否与数据库中的另一个表定义了关系?请发布您的DataContext 代码。
  • 不,它对其他表没有任何依赖
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多