无法使用实体框架获取数据

时间:2014-04-13 16:48:39

标签: c# asp.net asp.net-mvc entity-framework asp.net-mvc-4

我尝试使用asp.net MVC4创建Web应用程序我在我的控制器文件夹中创建了TeacherController,模型最后也添加了Db-context。我正在使用sql server。

像这样的DbContext

using MvcTest2.Models;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;

namespace MvcTest5.Models.nuwan600
{
    public class nuwan600:DbContext
    {
        public DbSet<Qualifications> Qualifications { get; set; }
        public DbSet<School> School { get; set; }
        public DbSet<Teacher> Teacher { get; set; }
    }
}

教师模型

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web;

namespace MvcTest2.Models
{
    [Table("Teachers")]
    public class Teacher
    {
        [Key]
        public int TeacherID { get; set; }
        public String Name { get; set; }
        public int NIC { get; set; }
        public String Address { get; set; }
        public int Telephone { get; set; }

        public int SchoolID { get; set; }
        public int QualificationID { get; set; }
    }
}

和TeacherController

public ActionResult Index()
{
    int id = 1;
    nuwan600 Teachers = new nuwan600();
    Teacher teachermodle = Teachers.Teacher.Single(emp => emp.TeacherID==id);
    return View(teachermodle);
}

当我运行此操作时,我遇到了运行时错误(在此行:Teacher teachermodle = Teachers.Teacher.Single(emp => emp.TeacherID==id);

  

在模型生成期间检测到一个或多个验证错误:
  MvcTest5.Models.nuwan600.Qualifications:EntityType'Qualifications'没有定义键。定义此EntityType的键   资格:EntityType:EntitySet'Qualifications'基于没有定义键的'Qualifications'类型   System.Data.Entity.ModelConfiguration.ModelValidationException

如何解决这个问题?错误需要帮助。

1 个答案:

答案 0 :(得分:2)

解决方案是...阅读错误消息。 ; - )

  

在模型生成期间检测到一个或多个验证错误:

     

MvcTest5.Models.nuwan600.Qualifications :: EntityType&#39; Qualifications&#39;没有定义键。定义此EntityType的键。 ...

Teacher课程中,您可以使用TeacherID属性定义[Key]是一个键。对Qualifications课程执行相同操作:使用[Key]属性标记(主要)密钥。