2009-03-04 1 views
2

Возможно, это просто глупая идея, вот почему я подбрасываю ее здесь:Как избежать MSDTC?

Я создаю приложение, используя одну базу данных для базовых и текущих данных (клиенты, статьи, инвентарь, открытые счета-фактуры, ...) и одна база данных в год для архивных данных (старые счета-фактуры, движение запасов, ...).

Существует только одна неприятная небольшая проблема: MSDTC. Большинство транзакций касаются только одной базы данных, но несколько касаются текущей базы данных и одного года архива. Поскольку все базы данных сходятся на одном сервере, это может быть простая транзакция по двум базам данных.

Однако Linq для сущностей заставляет меня создавать отдельное соединение для каждой базы данных, и здесь MSDTC запускается, требуя: a) быть установленным и b) замедляет все это.

Раздражающий!

Нет ли способа получить две модели фреймворка сущности ADO.Net для использования одного и того же соединения, имеющих собственную текущую базу данных?

Я уже пытался specify the database in the EF Schema, but EF does not like this and blocks it.

Очень раздражает. Возможно, мне просто нужно переместить все таблицы в одну базу данных, но это боль позже, когда вы пытаетесь отделить данные для резервного копирования и ускорения.

+0

Если вам нужно делать запросы через годы, одна база данных в год, вероятно, не является хорошим подходом. Как насчет отдельных таблиц в одной базе данных или даже более просто использовать разделение. http://msdn.microsoft.com/en-us/library/ms345146.aspx – bobince

+1

Разделение может быть дорогостоящим, так как для него требуется выпуск SQL Server Enterprise, который может добавить 30-50 долларов США в зависимости от конфигурации вашего процессора, если вы еще не используете Это. –

ответ

2

Попробуйте вызвать ChangeDatabase в вашем соединении. MSDTC всегда будет задействован, если вы используете несколько соединений. Даже для одной базы данных. Поэтому я могу предложить всегда поддерживать одно соединение и изменять базу данных с помощью этого метода.

Надеюсь, это поможет.

 Смежные вопросы

  • Нет связанных вопросов^_^