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