Я только начал использовать LINQ-to-SQL, поэтому моя проблема может быть тривиальной.
У нас есть центральная база данных, работающая на SQL Server 2005. Существуют распределенные настольные приложения .NET 4, которые сохраняют данные измерений в локальной базе данных SQL Server Compact. Эти файлы локальной базы данных (SDF) регулярно транспортируются на сервер, где они импортируются в центральную базу данных с помощью SqlBulkCopy.
Распределенные настольные приложения используют LINQ-to-SQL для обработки данных и для создания своей локальной базы данных SDF. ORM в настоящее время выполняется с помощью написанного вручную подкласса DataContext, скомпилированного как отдельная библиотека, которая содержит вложенный класс для каждой таблицы центральной базы данных. Я написал подкласс DataContext вручную, потому что хотел избежать генераторов кода, прежде чем я более или менее пойму, как работает LINQ-to-SQL.
Центральная база данных в настоящее время проста, но вскоре она будет структурно расширяться за счет добавления новых таблиц и добавления новых версий существующих таблиц. Проблема в том, что было бы неплохо автоматизировать генерацию подкласса DataContext. В идеальной ситуации это можно сделать как часть ежедневного процесса сборки. Таким образом, после того, как команда разработчиков базы данных изменит базу данных, команда разработчиков приложений получит новую версию библиотеки ORM. (Старый код не сломается, поскольку каждая старая таблица останется в базе данных. Старые версии таблиц будут удалены только тогда, когда их не использует ни одна из версий распределенного приложения.)
Итак, мой вопрос: каков наилучший способ создания подкласса DataContext для существующей базы данных? Я бы предпочел инструмент командной строки или API. Заранее спасибо за помощь!