Что лучше использовать для работы с базами данных в WPF?
Прошу совета.
После работы с WinForms + ADO.NET c dataset-ами и dataadapter-ми стал кодить на WPF.
Встал вопрос в наиболее оптимальной работе с базой данных на MS SQL.
Все примеры и статьи в сети ссылаются на различные ORM типа LINQ to SQL или EF, но так как пишу дополнительный модуль в стороннее ПО и работать приходится как со своей базой, так и со справочниками из сторонних баз, то использовать ORM как-то боязно. Я не смог найти адекватного примера для работы со сторонними справочниками или что делать если структура базы изменится.
Добавлю что объем данных в базе довольно большой, как и переделки и доработки кода в дальнейшем. С написанием кода на SQL проблем нет.
Нуждаюсь в советах, "вправлении мозгов" и ссылках на почитать.
Станислав Макаров: Один из примеров: одно из полей таблицы хранит идентификатор подразделения (uniqueidentifier) . При этом информация о подразделении (название, адрес и прочее) находится совершенно в другой базе данных.
Алексей ну а что тут думать - раз связей нет и не может быть, т.к. разные базы, то и ORM-маппинги можно отдельные сделать, а сопоставлять объекты вручную, в коде. Т.е. оставить идектификатор подразделения обычным int-ом в публичном свойстве, а объект поздразделения вытаскивать из другой сессии с базой справочников. Тем более проще, если вы справочники менять не намерены.
Если переживаете за сохранность данных в сторонних базах, попросите того, у кого есть админ. доступ дать вам пользователя БД с правами только на чтение. Идеальный вариант в плане не напортачить. По большому счету, хороший администратор и должен вам выдать именно такой доступ к базе справочников.
WPF и базы данных не имеют ни единой точки пересечения.
Так что вы можете использовать абсолютно любой способ хранения данных, хоть вручную делая sql запросы, хоть используя EF\NHibernate.
По поводу хибера могу сказать - изменения вполне легко поддерживаются, в полуавтоматическом режиме можно добавлять \ удалять столбцы и таблицы.