为了账号安全,请及时绑定邮箱和手机立即绑定

EntityType没有键定义错误

EntityType没有键定义错误

子衿沉夜 2019-10-09 15:32:32
控制器:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;using MvcApplication1.Models;using System.ComponentModel.DataAnnotations.Schema;namespace MvcApplication1.Controllers{    public class studentsController : Controller    {        //        // GET: /students/        public ActionResult details()        {            int id = 16;            studentContext std = new studentContext();           student first = std.details.Single(m => m.RollNo == id);            return View(first);        }    }}DbContext模型:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Data.Entity;namespace MvcApplication1.Models{    public class studentContext : DbContext    {        public DbSet<student> details { get; set; }    }}模型:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.ComponentModel.DataAnnotations.Schema;namespace MvcApplication1.Models{    [Table("studentdetails")]    public class student    {        public int RollNo;        public string Name;        public string Stream;        public string Div;    }}数据库表:CREATE TABLE [dbo].[studentdetails](    [RollNo] [int] NULL,    [Name] [nvarchar](50) NULL,    [Stream] [nvarchar](50) NULL,    [Div] [nvarchar](50) NULL)  在global.asax.cs中Database.SetInitializer<MvcApplication1.Models.studentContext>(null);上面的代码列出了我正在处理的所有类。在运行我的应用程序时收到错误:“模型生成期间检测到一个或多个验证错误”以及“实体类型未定义键”。
查看完整描述

3 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

确保将学生班级的公共成员定义为带有w的属性{get; set;}(您是公共变量,这是一个常见错误)。


[Key]在所选属性的顶部放置一个注释。


查看完整回答
反对 回复 2019-10-09
?
心有法竹

TA贡献1866条经验 获得超5个赞

发生这种情况有多种原因。我在这里找到了其中一些,其他是我自己发现的。


如果该属性的名称不是Id,则需要为其添加[Key]属性。

密钥必须是属性,而不是字段。

关键是 public

关键需要一个符合CLS的类型,这意味着无符号的类型,如uint,ulong等都是不允许的。

此错误也可能是由配置错误引起的。


查看完整回答
反对 回复 2019-10-09
  • 3 回答
  • 0 关注
  • 628 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信