实体“学生”需要定义主键

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;

以上是关于实体“学生”需要定义主键的主要内容,如果未能解决你的问题,请参考以下文章

实体类型“ModeratedUser”需要定义主键

实体类型“X”需要定义主键

EF Core:实体类型“用户”需要定义主键

Entity Framework Core “实体类型‘XXX’需要定义一个主键。”

实体类型“IdentityUserLogin<string>”需要定义一个主键[重复]

ASP.NET Core Web API - 实体类型“IdentityUserRole<long>”需要定义主键