public class Person {
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
[ManyToMany(typeof(PersonColor), CascadeOperations = CascadeOperation.All)]
public List<Color> FavoriteColors { get; set; }
}
public class Color {
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
public string Name { get; set; }
[ManyToMany(typeof(PersonColor))]
public List<Person> People { get; set; }
}
public class PersonColor {
[ForeignKey(typeof(Person))]
public int PersonId { get; set; }
[ForeignKey(typeof(Color))]
public int ColorId { get; set; }
}
...
var person = new Person() {
FirstName = "Adrian",
LastName = "Simbulan",
FavoriteColors = new List<Color>() {
new Color() {Name = "Red"},
new Color() {Name = "Green"}
}
};
await _db.InsertWithChildrenAsync(person);
Итак, я пытаюсь установить отношения «многие ко многим» между «Человек» и «Цвет». Таблица цветов будет предварительно заполнена статическими данными.
Теперь проблема в том, что всякий раз, когда я выполняю команду «InsertWithChildrenAsync», она всегда вставляет новые данные в таблицу поиска цветов. Есть ли способ вставить запись человека с выбранными цветами, не затрагивая таблицу цветов?