Сначала немного об окружающей среде:
Мы используем программу под названием Clearview для управления сервисными отношениями с нашими клиентами, включая колл-центр и работу на местах. Чтобы улучшить поддержку клиентов и наших технических специалистов, мы также разработали веб-сайт для предоставления доступа к записям услуг в Clearview и отчетности. Со временем наша потребность в настройке поведения и добавлении новых функций привела к тому, что все больше и больше вещей привязываются к этому сайту и его базе данных.
На данный момент мы имеем дело с такими вещами, как Компания, определяемая частично в базе данных Clearview и частично в базе данных веб-сайта. Для правильной оценки мы также начинаем связывать скрипты для нашей телефонной системы с тем же веб-сайтом, который также потребует общения с собственной базой данных телефонной системы.
Все это настроено и работает ... НО у нас нет хорошего слоя данных для работы со всем этим. Мы перешли с Linq на SQL, и теперь у нас есть два DBML, которые мы можем использовать, а также некоторые пользовательские классы, которые я написал до того, как услышал о Linq, вместе с некоторыми наборами данных ADO старого стиля. Так что да, в основном все в беспорядке.
То, что мне нужно, - это уровень данных, который обеспечивает единый внешний интерфейс для наших приложений и на внутреннем уровне управляет всем в правильной базе данных.
Я слышал кое-что о Entity Framework, позволяющем создавать классы из нескольких источников, но оказывается, что может быть только одна база данных. Итак, вопрос в том, как я мог продолжить это?
В настоящее время я думаю о том, чтобы все классы Linq To SQL были установлены для каждой базы данных, а затем вручную писать совместимые с Linq интерфейсы, которые связывают их вместе. Похоже, много работы, и с учетом ограничений Linq (например, не в состоянии обновить), я не уверен, что это хорошая идея.
Могу ли я сделать что-то с Entity Framework, что получилось бы лучше? Стоит ли искать другой инструмент? Я сумасшедший?