先在Ef核心代码中添加迁移时出现错误

问题描述 投票:0回答:1

我经常在互联网上搜索,也经常从chatgpt中提出问题,但我找不到答案,当我添加迁移时,我遇到了错误,这是我的错误 错误文字:

属性“quizType”无法从实体类型“DataLayer.Models.QuizModel (Dictionary)”中删除,因为它正在“DataLayer.Models.QuizModel (Dictionary)”的外键 {'quizType'} 中使用。在删除属性之前,必须删除或重新定义所有包含外键的内容。

但我没有删除任何我认为错误的内容,这是我的测验上下文和我的模组


namespace DataLayer.Models

{ 

public class QuizType

{

[Key]

[Required]

public int quizType { get; set; }

[MaxLength(150)]

public string QuizTitle { get; set; }

public QuizModel quizModel { get; set; }

}

}

UserModel Codes : namespace DataLayer.Models

{

public class UserModel

{

[Key]

[Required]

public int UserID { get; set; }

[Required]

[MaxLength(300)]

public string UserName { get; set; }

[Required]

[MaxLength(300)]

public string Password { get; set; }

[AllowNull]

[MaxLength(150)]

public string Role { get; set; }

public ICollection<QuizModel> quizes { get; set; }

}

}

QuizModel Codes : namespace DataLayer.Models

{

public class QuizModel

{

[Key]

[Required]

public int QuizID { get; set; }

[Required]

[MaxLength(150)]

public string QuizName { get; set; }

[Required]

[MaxLength(300)]

public string Categories { get; set; }

[Required]

public int QuestionCount { get; set; }

[Required]

public int QuizType { get; set; }

[ForeignKey("QuizType")]

public QuizType quizType { get; set; }

[Required]

[ForeignKey("User")]

public int UserID { get; set; }

public UserModel User { get; set; }

public ICollection<QuestionModel> Questions { get; set; }

}

}

QuestionModel Codes: namespace DataLayer.Models

{

public class QuestionModel

{

[Key]

[Required]

public int QuestionID { get; set; }

[Required]

[MaxLength(400)]

public string QuestionText { get; set; }

[Required]

public int QuizType{ get; set; }

[ForeignKey(name:"quiz")]

public int QuizID { get; set; }

public QuizModel quiz { get; set; } 

public AnswerModel Answer { get; set; }

public ICollection<AnswerOption> Oprtions { get; set; }

}

}

AnswerModel And AnswerOption Codes: namespace DataLayer.Models

{

public class AnswerModel

{

[Key]

[Required]

public int AnswerID { get; set; }

[Required]

[MaxLength(300)]

public string Answertxt { get; set; }

[Required]

[ForeignKey(name: "Question")]

public int QuestionID { get; set; }

public QuestionModel Question { get; set; }

[Required]

public bool AnswerValidation { get; set; }

}

public class AnswerOption

{

[Key]

[Required]

public int OptionID { get; set; }

[Required]

[MaxLength(300)]

public string Optiontxt { get; set; }

[Required]

public bool answerValidation { get; set; }

[Required]

[ForeignKey(name: "questionModel")]

public int QuestionID { get; set; }

public QuestionModel questionModel { get; set; }

}

}

c# entity-framework entity-framework-core visual-studio-2022 core
1个回答
0
投票

您对“QuizType”类主键的名称错误,而不仅仅是“quizType”,您应该使用“QuizTypeID”或“ID”,这将解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.