Subsonic 3.0 LINQ шаблоны с несколькими базами данных - PullRequest
1 голос
/ 24 февраля 2010

Я оцениваю SubSonic 3.0 для использования в нашем бизнесе в качестве замены для наших объектов POCO. Я новичок в SubSonic, буквально установил его вчера. Я дошел до того, что могу подключиться к одной базе данных, используя шаблоны LINQ T4 3.0, и был потрясен обещанием возможности подключения к нескольким базам данных в одном приложении с использованием SubSonic.

Моя проблема в том, что я не могу найти документацию о том, как использовать шаблоны T4 с несколькими базами данных (например, добавление еще одной строки подключения, настройка Settings.ttinclude и т. Д.).

Я искал в Google и Stackoverflow ответ, чтобы посмотреть, как это будет сделано или, если возможно, возможно. Любая помощь будет оценена.


Так что я, кажется, смог заставить его работать, добавив еще одну connectionString в web.config, а затем добавив второй набор шаблонов для этого connectionString, он работает, но он не кажется «чистым» или даже действительно это СУХОЙ для меня.

Также кажется, что я мог бы сделать почти то же самое с .NET, встроенным в LINQ, добавив несколько файлов .dbml.

Может ли кто-нибудь объяснить мне, почему мы не должны просто использовать встроенную поддержку LINQ для сторонних ORM, таких как SubSonic?

Ответы [ 2 ]

5 голосов
/ 24 февраля 2010

Перекрестная рассылка из дозвукового списка рассылки:

О да, я делаю это все время, трюк состоит в двух копиях шаблонов (легко) или редактировании шаблонов для итерации по двум наборам таблиц (сложнее). Во втором файле settings.tt измените имя строки подключения, чтобы отразить другую базу данных. Вы также можете изменить пространство имен, чтобы у вас не возникало конфликтов, когда имена таблиц совпадают. Это кажется хакерским, но я не думаю, что это потому, что оно позволяет вам вносить изменения в шаблоны для каждой базы данных независимо.

Если вам действительно нужен только один набор шаблонов, самый простой способ сделать это - отредактировать SQLServer.tt (или ваш выбор базы данных) и переопределить работу LoadTables так, чтобы она принимала список соединений, а не один один. Я должен сказать, что это боль, и это будет гораздо сложнее, чем иметь 2 копии файлов.

1 голос
/ 24 февраля 2010

(в ответ на ваш ответ на ваш вопрос)

Может ли кто-нибудь объяснить мне, почему я не должен просто использовать встроенный LINQ поверх стороннего ORM, такого как SubSonic?

На мгновение: SubSonic поддерживает больше, чем просто Microsoft Sql Server.

...