Ameer Adel Al-Zubaidy Ответов: 1

Entity framework 6 сохранить из списка


Привет
Я работаю над своим первым проектом EF6 и у меня есть пара вопросов

Наброски проекта
Недвижимость (здание) есть комнаты
В номере есть список критериев или рейтинг
Каждый критерий имеет свой набор значений
т.е.
Недвижимость (Здание) Вспомогательный глагол
Комната 1
В каждой комнате есть куча ценностей
Значение a 0-1
Значение B 2-5 ... и т. д.

Комната 2
В каждой комнате есть куча ценностей
Значения 1-3
Значение B 0-5 ... и т. д.


Недвижимость (Здание) Б у
Комната 1
В каждой комнате есть куча ценностей
Значение a 0-1
Значение B 4-9
Значение c 0-1 ... и т. д.

Комната 2
В каждой комнате есть куча ценностей
Значения 1-3
Значение B 0-4 ... и т. д.
...


Поэтому по своей природе недвижимость (здание) имеет список комнат, каждая комната имеет свои ценности
Таким образом, дизайн базы данных является
Недвижимость 1...N Номеров
Номера 1...N Значений

Эти значения могут быть изменены по желанию

Я использую EF6 для обработки БД и Caliburn.Микро-BindableCollection
Извлечение данных из БД с помощью DbSet
Теперь дилемма состоит в том, чтобы сохранить комнаты и их значения без дублирования, я попытался обновить dbSet с помощью циклов, но это только вызвало дублирование данных.
Я не мог найти способ очистить DbSet от его данных, не возвращаясь к спагетти-коду, которого я пытаюсь избежать

Мой вопрос заключается в том, как сохранить данные в БД без
1 - дублирование
2 - спагетти и очень уродливый код
3 - отбрасывание фреймворков, которые я использую

заранее спасибо

Что я уже пробовал:

Пустой DBContext и его DbSet
Преобразовать интерфейс ICollection, чтобы в dbset
Сохранено успешно, но с дублированными данными

1 Ответов

Рейтинг:
0

Ameer Adel Al-Zubaidy

Правильно
во - первых, извините за грубый английский, я сейчас в полном беспорядке
решение заключается в следующем:

Цикл по существующим основным категориям (недвижимость(здание))
за собственность.Рассчитывать
Собственность[i].Комнаты = inProperty[i].Комнаты

И так далее и тому подобное для других вложенных списков

PropertyDBContext.Метод SaveChanges();

если у вас, ребята, есть лучшее решение, я всегда буду рад c&c