В настоящее время я работаю в многобазисной среде SQL Server и использую linq to sql для выполнения запросов.
Я использую описанный здесь подход для достижения перекрестных объединений БД: http://www.enderminh.com/blog/archive/2009/04/25/2654.aspx
так в основном:
2 контекста данных - пользователи и платежи
Users.dbo.UserDetails {PK: UserId }
Payments.dbo.CurrentPaymentMethod { PK: UserId }
Я перетаскиваю таблицы в DBML, а в окне свойств меняю источник с dbo.UserDetailsв Users.dbo.UserDetails, чтобы полностью квалифицировать имя БД.
Затем я могу выполнить одиночное кросс-соединение БД с контекстом данных, выполнив что-то вроде:
var results = (from user in datacontext.Table<UserDetail>()
join paymentmethod in dataContext.Table<CurrentPaymentMethod>() on user.UserId equals paymentmethod.UserId
... rest of query here ...);
Теперь это tickety boo иработает так, как я хочу.Единственная проблема, с которой я сейчас сталкиваюсь, - это когда происходит обновление схемы и т. Д. (Что происходит довольно часто, поскольку мы находимся в фазе значительного уровня разработки).
(и, наконец, вопрос!) Чего я хочу достичь(и я пометил вопрос как T4 в качестве предположения, так как я знаю, что файлы DBML управляются T4) - это автоматический способ, когда я перетаскиваю любую таблицу в контекст данных, когда источник автоматически выбирает имя базы данных (такбудет иметь Users.dbo.UserDetails вместо просто dbo.UserDetails)?
Спасибо за любые указатели:)
Терри