当我从控制器访问我的模型数据时.我收到此错误EntitySet'Department'基于类型'Admin',没有定义键.我正在使用MVC5与visual stdio 2013 RC.
deptID(主键),deptName,描述:all是Department表的列名.
desgID(主键),desgName,description:all是Designation表的列名.
目标: - 我想在视图页面上创建一个deptName或desgName对话框,但现在我想解决这些问题.
我指的是这些链接: - EntityType'Category'没有定义键.定义此EntityType的键
ASP.NET MVC 3 EntityType没有定义键
但根据这些联系.我试图在我的主键列中使用[Key],但在mvc5中没有提示.
型号:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data.Entity; namespace mvcAppraisalSystem.Models { public class Admin { public int deptID { get; set; } public string deptName { get; set; } public string Description { get; set; } public int desgID { get; set; } public string desgName { get; set; } public string description { get; set; } } public class AdminDBContext : DbContext { public DbSetDepartment { get; set; } public DbSet Designation { get; set; } } }
Claies.. 12
实体框架只能确定您希望拥有哪个属性作为密钥,如果密钥只是简单命名Id
或包含类名,即AdminId
.它无法知道deptID
应该是一个Admin
类的关键字段.要解决此问题,[Key]
可以将注释附加到属性.要使用此批注,您需要在项目中引用Entity Framework并使用using语句using System.ComponentModel.DataAnnotations
.
实体框架只能确定您希望拥有哪个属性作为密钥,如果密钥只是简单命名Id
或包含类名,即AdminId
.它无法知道deptID
应该是一个Admin
类的关键字段.要解决此问题,[Key]
可以将注释附加到属性.要使用此批注,您需要在项目中引用Entity Framework并使用using语句using System.ComponentModel.DataAnnotations
.