Какой смысл в DatabaseAttribute в LinqToSQL? - PullRequest
1 голос
/ 24 марта 2009

Класс контекста LinqToSQL по умолчанию помечен с помощью DatabaseAttribute. Это необязательно, однако. В любом сценарии, который я могу придумать, вы бы использовали строку подключения для указания на базу данных, в чем причина этого. Теперь я, очевидно, прочитал документы. какое состояние, вы используете его, чтобы указать базу данных по умолчанию, если вы хотите опустить ее в строке подключения. Но... почему вы хотите это сделать? какие-либо предложения?

Ответы [ 2 ]

0 голосов
/ 25 марта 2009

Трудно понять, что думала команда дизайнеров в то время.

Я полагаю, что в приложении с несколькими базами данных разрешены дополнительные конфигурации со стандартной строкой подключения по умолчанию. Это не поддерживается встроенным, поэтому я сомневаюсь в этом. Это позволило бы что-то вроде:

<add name="GeneralConnection" ... />
<add name="GeneralConnection.SomeDataContext" ... />

Все контексты данных будут настроены так, чтобы указывать на GeneralConnection. Некоторый дополнительный код для извлечения экземпляра контекста данных будет проверять наличие GeneralConnection.ThatDataContext и использовать в этом случае конструктор со строкой соединения.

Это всего лишь предположение. У меня не было подобной потребности, и я не думаю, что я бы полагался на что-то подобное.

0 голосов
/ 24 марта 2009

Хм .... хороший вопрос. Я не могу думать о хорошем использовании для этого. Если бы вы хотели объединить несколько баз данных (разных контекстов данных) из одного соединения (что, в первую очередь, не очень хорошая идея), все же было бы довольно бесполезным, поскольку оно было бы исправлено для всех экземпляры контекста данных.

В каждом разумном случае, о котором я могу думать, соединение определяет базу данных, или это не проблема (автономные файлы БД и т. Д.). Интересно, если бы он не был помещен туда только потому, что он (знание имени базы данных) существовал, и поэтому его можно было бы получить (теоретически) таким же образом ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...