我经常在互联网上搜索,也经常从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; }
}
}
您对“QuizType”类主键的名称错误,而不仅仅是“quizType”,您应该使用“QuizTypeID”或“ID”,这将解决问题。