【发布时间】:2020-03-27 06:12:49
【问题描述】:
我尝试将Answers 的列表插入Questions,然后将其插入Exams,我的所有代码都可以正常工作,除了插入新的Answers 的一部分。
除了 Answers 的数据之外,数据插入得很好,其数据未存储在数据库中,另外我尝试获取 QuestionId,因此我可以将其与 Answer 作为外键存储,但我也失败了。
API 控制器
public IActionResult addExam([FromBody] Exams exam)
{
try
{
if (exam == null)
{
return StatusCode(401, "data is null");
}
var userId = this.help.GetCurrentUser(HttpContext);
Exams exams = new Exams
{
Name = exam.Name,
Number = exam.Number,
FullMarck = exam.FullMarck,
CreatedBy = userId,
CreatedOn = DateTime.Now,
Status = exam.Status
};
db.Exams.Add(exams);
var questionsList = new List<Questions>();
foreach (Questions item in exam.Questions)
{
var question = new Questions
{
ExamId = exam.Id,
Points = item.Points,
CreatedBy = userId,
CreatedOn = DateTime.Now,
Status = item.Status,
};
questionsList.Add(question);
}
exams.Questions = questionsList;
db.SaveChanges();
foreach (Questions item in exam.Questions)
{
var answersList = new List<Answers>();
foreach (Answers answers in item.Answers)
answersList.Add(new Answers
{
QuestionId = item.Id,
ExamAnswers = answers.ExamAnswers,
CreatedBy = userId,
CreatedOn = DateTime.Now
});
item.Answers = answersList;
}
db.SaveChanges();
return Ok("successfully created ");
}
catch (Exception e)
{
return StatusCode(500, e.InnerException.Message);
}
}
【问题讨论】:
-
您能告诉我们发生了哪些与您的预期不同的事情吗?目前我们不知道“罚款”对您意味着什么,以及与此相关的“除外”意味着什么
-
数据插入得很好,除了 Answers 的数据,其数据未存储在数据库中,另外我尝试获取问题 ID,以便我可以将其与 Answer 作为外键存储,但我也失败了.
-
ps;如果您的数据库表使用复数形式,我个人会利用 EF/EFCore 中的相关选项将实体名称变为单数
-
感谢您的建议,尽管不是我创建了表格并选择了它们的名称。
-
我的意思是你应该打开相关部分以使其 C# 类没有复数名称
标签: c# .net entity-framework .net-core entity-framework-core