实体“学生”需要定义主键
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实体“学生”需要定义主键相关的知识,希望对你有一定的参考价值。
[为Student
控制器创建视图时遇到此问题,我正在使用SQL Server和Visual Studio 2019。
我正在使用这些依赖项
- Microsoft.CodeAnalysis.Razor版本= 2.1.1
- Microsoft.EntityFrameworkCore版本= 2.1.1“
- Microsoft.EntityFrameworkCore.SqlServer版本= 2.1.1
- Microsoft.EntityFrameworkCore.Tools版本= 2.1.1
=== Student.CS ===
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;
namespace ASP_Core_EF.Models
public enum Status UnderGraduate, PostGraduate, Masters, Phd, Suspended
public class Student
[Key]
public int StudentId get;
public string FirstName get; set;
public string LastName get; set;
[DataType(DataType.Date)]
public DateTime DOB get; set;
[DataType(DataType.Date)]
public DateTime RegistrationDate get; set;
public int GenderId get; set;
public Status? Status get; set;
=== DB_Context.CS ===
using ASP_Core_EF.Models;
using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace ASP_Core_EF.Repository
public class DB_Context : DbContext
public DB_Context(DbContextOptions<DB_Context> options ) : base(options)
public DbSet<Student> Students get; set;
public DbSet<Course> Courses get; set;
public DbSet<Gender> Gender get; set;
public DbSet<Enrollment> Enrollments get; set;
答案
您缺少集合属性,因此出现错误
[Key]
public int StudentId get; set;
或
[Key]
public int StudentId get; private set;
以上是关于实体“学生”需要定义主键的主要内容,如果未能解决你的问题,请参考以下文章
Entity Framework Core “实体类型‘XXX’需要定义一个主键。”