LINQ to SQL: один или несколько .dbml (Sprocs) - PullRequest
0 голосов
/ 31 июля 2010

Я читал об одном и нескольких дБмл, но он был ориентирован на использование таблиц, но мои вопросы очень специфичны для использования sproc для нескольких дБмл./ update / delete .... список растет как сумасшедший, и ему становится трудно следить за ним, и я легко трачу много времени на сканирование sprocs ...

это нормально иметь несколько dbmlsесли вы используете только sprocs ?поэтому я планирую иметь два отдельных DBMLS 1) поиски 2) GetLists / Вставка / Удалить / Обновить

какие-либо мысли?

Ответы [ 2 ]

1 голос
/ 31 июля 2010

Недавно я столкнулся с ситуацией, когда у меня был библиотечный проект, который выполнял операции над определенными таблицами в базе данных.Я использовал SqlMetal для генерации файла кода DataContext (я не беспокоился о файле dbml, хотя не думаю, что это повредит).

Затем я создал приложение, которое использовало эту библиотеку.Это приложение выполняло операции с теми же таблицами, что и библиотека, но также добавило несколько других таблиц (которые либо ссылались на таблицы, используемые библиотекой, либо ссылались друг на друга).Я использовал SqlMetal для генерации файла кода DataContext для приложений.Итак, теперь у меня было два разных DataContexts для одной и той же базы данных.

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

Примечание: я не использовал sprocs, только стандартныевыберите, вставьте, обновите, удалите, но я думаю, вы получите аналогичные результаты, используя sprocs.

1 голос
/ 31 июля 2010

Я не верю, что вы можете совместно использовать DataContexts, если у вас есть несколько DBML.И я также думаю, что если у вас есть два DataContexts, они по умолчанию не используют одно и то же соединение, так что вы с большей вероятностью перейдете к распределенной транзакции в определенных шаблонах использования.используя несколько файлов DBML.Если вы действительно хотите эту возможность, обновитесь до Entity Framework 4.0, который, как я понимаю, позволяет вам иметь несколько файлов EDMX, которые совместно используют один и тот же DataContext.

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