Linq-to-SQL: сколько текстовых данных? - PullRequest
3 голосов
/ 29 мая 2010

У меня есть база данных SQL Server 2008 с> 300 таблицами. Я должен разработать приложение для Windows Forms, .NET 3.5, C #.

Как лучше всего работать с Linq-to-SQL?

Я намерен создать текстовый текст для каждого субъекта хозяйствования.

Есть ли проблемы?

Мне нужно знать, имеет ли такой способ работы с Linq-to-SQL какой-либо недостаток или может создать проблемы с производительностью?

Спасибо.

Ответы [ 4 ]

8 голосов
/ 29 мая 2010

У вас обычно должно быть 1 отдельный файл DBML (= контекст данных) на базу данных. Вы, конечно, не должны создавать DataContext для каждой бизнес-сущности, поскольку при этом вы потеряете большинство полезных возможностей LINQ to SQL, таких как транзакции памяти (единица работы), отложенная загрузка и выполнение запросов LINQ для нескольких сущностей.

У вас довольно большая модель (+300 таблиц), что означает множество сущностей. Многие сущности не являются большой проблемой, за исключением дизайнера LINQ to SQL. Использование дизайнера с такими большими моделями может быть довольно раздражающим. Это может быть причиной разделения домена на несколько поддоменов (с каждым файлом DBML), но, конечно, не по одному на объект. Однако имейте в виду, что вы теряете возможности L2S на границах доменов.

В прошлом я советовал команде, которая разбила свой домен +150 сущностей на 5 файлов DBML, объединить их обратно в один DBML. Боль от редактирования модели возросла, но боль от использования нескольких DataContext s ушла, что резко уменьшило общую боль для них.

6 голосов
/ 29 мая 2010

Нет смысла создавать контекст данных для каждого бизнес-объекта, вам нужен только один текстовый текст для каждой базы данных.

0 голосов
/ 15 апреля 2011

Я сейчас использую 1 для всей базы данных, но есть законные варианты использования большего. Например, при установке моего сайта я запускаю сценарий, который подключается к удаленной БД, импортирует и преобразует данные в новый формат для развертывания. Процесс использует несколько временных таблиц.

Поместив временные таблицы в отдельный контекст, после развертывания сайта я могу просто удалить эти контексты и код, поскольку они являются независимыми объектами.

0 голосов
/ 29 мая 2010

ну, это зависит от того, сколько пользователей будет использовать вашу базу данных одновременно, а не от того, сколько там таблиц.Так что все дело в типичных проблемах с базой данных: количестве соединений, блокировках и прочем.

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