Пожалуйста, простите стену кода, но мне нужно, чтобы установить сцену ....многие ко многим отношения не обновляется в SQLite Extensions
public class Student
{
public string Name { get; set; }
[PrimaryKey]
public string Id { get; set; }
[ManyToMany(typeof(StudentStaff))]
public List<Staff> Teachers { get; set; }
[ManyToMany(typeof(StudentGuardian))]
public List<Guardian> Guardians { get; set; }
}
public class Guardian
{
[PrimaryKey]
public string Id { get; set; }
public string Name{get;set;}
[ManyToMany(typeof(StudentGuardian))]
public List<Student> Students { get; set; }
}
public class Staff
{
[PrimaryKey]
public string Id { get; set; }
public string Name { get; set; }
[ManyToMany(typeof(StudentStaff))]
public List<Student> Students { get; set; }
}
public class StudentStaff
{
[ForeignKey(typeof(Student))]
public string StudentId { get; set; }
[ForeignKey(typeof(Staff))]
public string StaffId { get; set; }
}
public class StudentGuardian
{
[ForeignKey(typeof(Student))]
public string StudentId { get; set; }
[ForeignKey(typeof(Guardian))]
public string GuardianId { get; set; }
}
Учитывая эти классы, как я должен вставить студентов, сотрудников и опекуны в базу данных при сохранении отношений? Я должен отметить, что сервер возвращает заполненные записи Студента, так что это моя отправная точка.
Я попробовал conn.InsertOrReplaceWithChidlren(student);
... который вставил ученика, студента и учеников, но не фактического штата или опекуна. Я попытался conn.InsertOrReplaceWithChildren(student);
conn.InsertOrReplaceWithChildren(student.Teachers);
conn.InsertOrReplaceWithChildren(student.Guardians);
Как ни странно, что в конечном итоге с персоналом, попечителя и учителей вставлено но ни одна из таблиц пересечения имели какие-либо данные ...
--update --- Я просто попытался conn.InsertOrReplaceWithChildren(student.Teachers);
conn.InsertOrReplaceWithChildren(student.Guardians);
conn.InsertOrReplaceWithChildren(student);
И это сработало отлично ... вопрос в том, почему? Почему многие из многих, похоже, зависят от порядка операций?
Хммм Мне нравится чтение, я дам остальное вихрь и дам вам знать. Я не уверен на 100%, почему вы упомянули ключи автоинкремента. Мои образцы не имеют ни одного из них. – user3589700