Хорошо, так как все здесь в прошлый раз оказали большую помощь, я вернулся. Основная предпосылка такова:
Лицо может иметь обязанности перед другими Лицами.
Я определил сущности, подобные этой:
public class Person
{
public int PersonId { get; set; }
public string Name { get; set; }
public virtual ICollection<Responsibility> Responsibilities { get; set; }
}
public class Responsibility
{
public int ResponsibilityId { get; set; }
public string ResponsibilityType { get; set; }
public virtual ICollection<Person> People { get; set; }
}
Однако, когда я добавляю Ответственность к Персоне, они заканчивают Ответственность за себя, даже если в Людях пусто, когда я добавляю Ответственность к Персоне.
Кроме того, если я добавлю Ответственность за Лицо А для Лица Б, то Лицо Б появится как ответственное за Лицо А:
Лицо А - Ответственность за Лицо А, Лицо Б
Лицо B - Ответственность за Лицо B, Лицо A
Есть идеи, что я делаю не так?
UPDATE
Это мое назначение в БД
// 7. Responsability (Line Manager)
List<Person> people = new List<Person>();
people.Add(personB);
var responsibility = new Responsibility() { Type = ResponsibilityType.LineManager, People = people };
List<Responsibility> responsibilities = new List<Responsibility>();
responsibilities.Add(responsibility);
// 7.1 Assign to Person A
personA.Responsibilities = responsibilities;
db.SaveChanges();
Все еще приводит к тому, что PersonA имеет LineManger над PersonA и Person B, а Person B имеет LineManager через PersonA и PersonB
ПОСЛЕДНИЕ ОБНОВЛЕНИЯ
Кажется, это проблема, когда я вызываю db.SaveChanges (), так как до этого это было совершенно правильно. (