我的模型(為簡潔起見已更改):
public class Course
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Tutorial>? Tutorials { get; set; }
}
public class Tutorial
{
public int Id { get; set; }
public string Title { get; set; }
public int CourseId { get; set; }
public Course Course { get; set; }
}
我試圖堅持一門課程,其中包含關于 sqlite db 的教程串列。這是我的代碼的簡單版本。
// create a new Course with user input name
// get list of tutorials by looping through data from external api
course.Tutorials = tutorialsAppendedInsideForLoop();
context.Courses.Add(course);
await context.SaveChangesAsync();
我的Course專案保存在資料庫中。但令人驚訝的是,只有我Tutorials串列中的最后一項得到了保留。不是整個串列。
我正在努力在這里找到問題。
更新:
這是forloop代碼:
private List<Tutorial> TutorialsAppendedInsideForLoop(Course course)
{
var tuts = CallToExternalApi();
var tutorials = new List<Tutorial>();
for (int i = 0; i < tuts.Count; i )
{
var tutorial = new Tutorial
{
Title = tuts[i].Name,
Course = course
};
tutorials.Add(tutorial);
}
return tutorials;
}
uj5u.com熱心網友回復:
我正在尋找錯誤的錯誤位置。問題不在 for 回圈中。DB 正在跳過其他記錄,因為我在 Fluent API 中錯誤地設定了關系。一旦我擺脫了那個錯誤,它就可以完美地作業。謝謝??
uj5u.com熱心網友回復:
您可以嘗試將課程設定為 TutorialList
foreach(var tutorial in tutorials)
{
tutorial.Course = course;
...
}
uj5u.com熱心網友回復:
在 foreach 中添加課程:
var course = context.Courses.Where(x => x.Id == id);
foreach (var tutorial in tutorials)
{
course.Tutorials.Add(tutorial);
}
context.SaveChangesAsync();
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/429119.html
上一篇:遷移檔案夾的位置是如何確定的?
