Ну, у меня есть эта конфигурация:
- Элемент имеет 0 или много Групп и 0 или много Пользователи (таблицы GroupsItem и UsersItem )
- Группы и Users внутри 0 или много Items
- Группы и Пользователи независимо создаются в приложении
Вот проблема: Когда я пытаюсь вставить новый Элемент Я должен указать, каковы его Группы и Пользователи (которые уже существуют).Когда это происходит, таблицы GroupsItem , UsersItem и Item заполняются правильно, но у меня есть дублированные регистры в Groups и Пользователи .
Вот мой краткий код:
Элемент :
public class Item {
public ICollection<Groups> GROUPS{ get; set; }
public ICollection<Users> USERS{ get; set; }
}
Группы : ( Пользователи имеют одинаковую структуру)
public class Groups{
public ICollection<Item> ITEM { get; set; }
}
Вставка нового Item :
public static void InsertingItem(){
Item example = new Item(){
GROUPS = AlreadyExistingGroup()
}
using (myDbContext db = new myDbContext()){
db.ITEMS.Add(example);
db.SaveChanges();
}
}
И это все.AlreadyExistingGroup
- это метод, который возвращает List<Groups>
, который заполняется группами, которые уже существуют в базе данных. Метод, который объединяет эти группы, представляет собой одну функцию, которая объединяет одну группу, но вызывается несколько раз:
public static Groups FetchGroups(int id) {
try {
using (myDbContext db = new myDbContext ()) {
Groups group = db.GROUPS.Where(x => x.CODGROUP == id).FirstOrDefault();
return group;
}
} catch (Exception e) {
return null;
}
}
Что я делаю неправильно, что вызывает дублирование регистров в группах и пользователях?