c# – 尝试构建一个视图并且“无法检索元数据”和“验证错误”实
发布时间:2020-12-15 17:46:19 所属栏目:百科 来源:网络整理
导读:我有一个程序,我试图弄清楚我的朋友没有得到的问题.我试图从我的控制器构建一个视图,然后我得到一个 error "Unable to retrieve metadata for 'GradedWork.Controllers.CourseAddForm'. One or more validation errors were detected during model generatio
我有一个程序,我试图弄清楚我的朋友没有得到的问题.我试图从我的控制器构建一个视图,然后我得到一个
error "Unable to retrieve metadata for 'GradedWork.Controllers.CourseAddForm'. One or more validation errors were detected during model generation: GradedWork.Model.CourseAddForm : EntityType 'CourseAddForm' has no key defined. Define the key for this EntityType. CourseAddForm: EntityType: EntitySet 'CourseAddForm' is based on type 'CourseAddForm' that has no keys defined.' 我试图使用CourseAddForm视图模型类来构建一个创建视图,但我总是得到这个错误. 我的CourseAddForm类不应该带有关键字段,我的朋友没有我遇到的这个问题. 我的视图模型类: namespace GradedWork.Controllers { public class CourseList { [Key] public int Id { get; set; } [Display(Name = "Name")] public string Name { get; set; } } public class CourseAddForm { [Display(Name = "Course Code")] public int CourseCode { get; set; } // [Required] [Display(Name = "Name")] public string Name { get; set; } // [Required] [Display(Name = "Semester")] public string Semester { get; set; } // [Required] [Display(Name = "Section Id")] public string SectionId { get; set; } [Display(Name = "Teacher")] public ICollection<TeacherList> Teacher { get; set; } [Display(Name = "Student")] public ICollection<StudentList> Students { get; set; } [Display(Name = "Graded Works")] public ICollection<GradedWorkList> GradedWorks { get; set; } public CourseAddForm() { this.Teacher = new List<TeacherList>(); this.Students = new List<StudentList>(); this.GradedWorks = new List<GradedWorkList>(); } } public class CourseAdd { [Display(Name = "Course Code")] public int CourseCode { get; set; } // [Required] [Display(Name = "Name")] public string Name { get; set; } // [Required] [Display(Name = "Semester")] public string Semester { get; set; } // [Required] [Display(Name = "Section Id")] public string SectionId { get; set; } [Display(Name = "Teacher")] public ICollection<Teacher> Teacher { get; set; } [Display(Name = "Student")] public ICollection<Student> Students { get; set; } [Display(Name = "Graded Works")] public ICollection<GradedWorks> GradedWorks { get; set; } public CourseAdd() { this.Teacher = new List<Teacher>(); this.Students = new List<Student>(); this.GradedWorks = new List<GradedWorks>(); } } public class CourseBase : CourseAdd { [Key] public int Id { get; set; } } } 我试图搭建的控制器方法 public ActionResult Create() { var addForm = new CourseAddForm(); foreach (var item in m.GetAllTeachersAsList()) { addForm.Teacher.Add(item); } foreach (var item in m.GetAllStudentsAsList()) { addForm.Students.Add(item); } foreach (var item in m.GetAllGradedWorkAsList()) { addForm.GradedWorks.Add(item); } return View(addForm); } // // POST: /Course/Create [HttpPost] public ActionResult Create(CourseAdd newItem) { if (ModelState.IsValid) { var addedItem = m.AddCourse(newItem); if (addedItem == null) { return RedirectToAction("Index"); } else { return RedirectToAction("Details",new { id = addedItem.Id }); } } else { var addForm = Mapper.Map<CourseAddForm>(newItem); foreach (var item in m.GetAllTeachersAsList()) { addForm.Teacher.Add(item); } foreach (var item in m.GetAllStudentsAsList()) { addForm.Students.Add(item); } foreach (var item in m.GetAllGradedWorkAsList()) { addForm.GradedWorks.Add(item); } return View(addForm); } } 我的连接字符串: <connectionStrings> <add name="DataContext" connectionString="Data Source=(LocalDb)v11.0;AttachDbFilename=|DataDirectory|StoreName.mdf;Initial Catalog=StoreName;Integrated Security=True" providerName="System.Data.SqlClient" /> 解决方法
我所要做的就是删除我的脚手架中的datacontext选项,它的工作原理……
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |