2017-06-14 66 views
0

控制器

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'没有定义键。模型生成过程中检测到EntitySet的 'SelectListItems' 是基于类型 'SelectListItem' 不具有键定义

错误

一个或多个验证错误: Demo.Context.SelectListItem:的EntityType 'SelectListItem' 不具有确定的键。定义此EntityType的关键字。 SelectListItems:EntityType:EntitySet'SelectListItems'基于没有定义键的类型'SelectListItem'。

回答

0

你可以试试这个吗?

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

它不工作。问题依然存在。其实m有问题相关的modelvalidation。解决我在模型中应用了键。但无法解决这个问题 – Priya

+0

@Priya,你可以显示代码实际上你正在使用'SelectListItem'或者告诉哪个行异常被抛出? –

+0

当我在控制器中与db进行通信时抛出异常。 'db.menuitems.ToList()'实际上是抛出异常 – Priya

相关问题