根據
SQL資料庫:

當我檢查預訂表時,EF 不會自動添加到 BookingStudent 中,如果是這樣,我如何告訴 ef core 添加到學生中?我已將他們的 StudentId 保存到預訂中,為什么它沒有創建條目。
它創建了預訂表條目

在我的腦海中,如果我不應該在預訂學生時看到值 10 和 72。
但不是預訂學生入場?。根據檔案,它會自動創建它,是的,但是保存條目如何它仍然不會自動執行。

在這個階段,我沒有在創建方法的 DBContext 中放置任何東西,因為檔案說你不再需要它了???
這就是我拯救我的學生的方式。如您所見,我正在填寫 StudentId 的外鍵。
Booking newBooking = new Booking();
newBooking.DayOfWeek = DayNumber;
newBooking.BookingDate = BookingDate;
newBooking.Time=Helpers.Dates.GetDateZeroTime(selectedBookingDate.Date).Add(timePicker.Time);
newBooking.StudentId = StudentId;
newBooking.HasCheckedIn = false;
newBooking.IsActive = true;
newBooking.IsDeleted = false;
newBooking.IsAbsent = false;
await api.AddToBooking(newBooking);
await DisplayAlert(Constants.AppName, "Booking Created For Student", "OK");
我的添加到預訂中 api 在 web api 中呼叫的是。
public Booking AddBooking(Booking booking)
{
db.Bookings.Add(booking);
db.SaveChanges();
return booking;
}
編輯 2
這是你的意思嗎
//Do i need to put the second param in for Student here ?
public Booking AddBooking(Booking booking, Student student)
{
booking.Students.Add(student);
db.Bookings.Add(booking);
db.SaveChanges();
return booking;
}
uj5u.com熱心網友回復:
如果是多對多關系,為什么你有一個StudentId屬性Booking?
首先洗掉屬性:
public class Booking
{
public int Id { get; set; }
public int? DayOfWeek { get; set; }
public DateTime? BookingDate { get; set; }
public bool? IsAbsent { get; set; }
public DateTime? Time { get; set; }
public bool? HasCheckedIn { get; set; }
public ICollection<Student> Students { get; set; }
public bool? IsDeleted { get; set; }
public bool? IsActive { get; set; }
public string? CreatedBy { get; set; }
public string? LastModifiedBy { get; set; }
}
然后將您想要的學生(將有一個 ID)添加到ICollection您預訂的學生中。
booking.Students.Add(student);
這將觸發 EF 多對多關系。
像這樣的東西:
var student = new Student { ... };
var newBooking = new Booking {
Student = new List<Student> { student },
...
};
await api.AddToBooking(newBooking);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/313329.html
