EF и Typed DataSet (ADO.NET) в одном приложении
От: SeLo  
Дата: 18.12.14 15:47
Оценка:
Добрый день,
Подскажите пожалуйста, оправданно ли следующее.

WinForms. Ввиду определенной специфики требований приложения (большего вы от меня не узнаете ) моделью данных является типизированный DataSet, который биндится к элементам управления. DataSet не 1:1 база данных, где надо расширен «временными» таблицами и/или полями. Сразу скажу, от дата сета очень тяжело отказаться, практически невозможно.
В принципе все нормально, но иногда при выборке дынных из базы данных при помощи адаптеров происходит очень интенсивное и многократное обращение к базе. Поясню. Допустим нужно получить записи некоторой таблицы по определенному критерию, и отобразить их. Каждая запись имеет множетсво внешних ключей и нужно в датасет подгрузить записи, соответствующие этим ключам. Загрузить данные из несколькох таблиц в одном запросе Адаптеры не позоволяют, приходится прогонять полученных результат и подгружать внешние таблицы по ключу, для каждого ключа отдельно. В общем – очень ресурсоемкие обращения к базе получаются. В EF конечно же все намного проще, метод Include загружает результат в одном запросе (Include выраждается в SQL-JOIN и потом мапится на Navigation-Properties).

Возникла идея смешать эти два подхода – EF – как AccessLayer и DTO, а моделью данных, что используется на клиенте DataSet.

Вообще, во многих местах программы, так где не требуется DataSet, я мог бы и хотел бы использовать EF.

Вопрос – стоит ли мешать две технологии EF и дата сет? Или проблему, описанную мной, можно как-то обойти.

Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.