EntitySet'Department'基于类型'Admin',没有定义键

 XIE绍雄 发布于 2023-02-07 19:28

当我从控制器访问我的模型数据时.我收到此错误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 DbSet Department { get; set; }

    public DbSet Designation { get; set; }
 }
}

Claies.. 12

实体框架只能确定您希望拥有哪个属性作为密钥,如果密钥只是简单命名Id或包含类名,即AdminId.它无法知道deptID应该是一个Admin类的关键字段.要解决此问题,[Key]可以将注释附加到属性.要使用此批注,您需要在项目中引用Entity Framework并使用using语句using System.ComponentModel.DataAnnotations.

1 个回答
  • 实体框架只能确定您希望拥有哪个属性作为密钥,如果密钥只是简单命名Id或包含类名,即AdminId.它无法知道deptID应该是一个Admin类的关键字段.要解决此问题,[Key]可以将注释附加到属性.要使用此批注,您需要在项目中引用Entity Framework并使用using语句using System.ComponentModel.DataAnnotations.

    2023-02-07 19:32 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有