Правильный способ обработки DataContext в приложении - PullRequest
1 голос
/ 19 ноября 2011

Следуют (WPF Windows) Сведения о приложении

  1. БД - SQLite и использует ADO.net Entity Framework в качестве ORM
  2. БД - очень маленький максимальный размер БДможет составлять от 600 до 800 КБ с примерно 15-20 таблицами
  3. База данных обновляется только XML-файлом сервера во всех сценариях (то есть xml будет преобразован в типы ORM и передан вБД через сущность FW)
  4. Таким образом, ни один объект ORM из верхних уровней никогда не будет использоваться для обновления БД, так как мы должны сгенерировать объекты ORM из файла XML, чтобы обновить его до БД

С этими требованиями в настоящее время я выполнил

  1. Контекст данных недоступен ни одному из контроллеров, кроме уровня БД, поэтому ни один контроллер не может обновить что-либо в БД(также не может перемещаться от объекта через навигационные свойства), так как единственная возможность - с сетевого уровня
  2. Я преобразовываю типы ORM в некоторых других фиктивныхнапр., например: если в ORM есть класс сотрудников (который создается из Framework), я преобразую его в тип сотрудника и отправлю его на верхние уровни (у него не будет каких-либо свойств навигации, которые будут присутствовать в сотруднике типа ORM), которыебудет использоваться контроллерами и всеми другими уровнями, и когда xml будет получен от сетевого уровня, он будет отправлен на уровень DB, который сгенерирует соответствующие типы ORM и обновит DB
  3. , так как я преобразую его вфиктивный тип Мне больше не нужно беспокоиться о времени жизни данных и не требуется каждый раз воссоздавать объект другим способом, и все операции запроса делегируются на уровень БД. Этот подход хорош?

Примечание: это многопоточное и очень асинхронное приложение для Windows

, поэтому мой вопрос

- преобразование типа orm в другой тип - хорошее решение проблемыописал?

...