Linq to SQL и модель больших БД - PullRequest
7 голосов
/ 08 ноября 2008

Во-первых, я новичок в Linq to Sql, поэтому, пожалуйста, будьте осторожны:).

У меня есть приложение ASP.Net, разработанное за последние 3,5 года. Он имеет довольно большую модель данных, около 350 таблиц. Я пытаюсь сделать что-то новое с Linq to SQL.

Первое впечатление, что linq designer и SqlMetal созданы для баз данных не больше, чем в примере NorthWind. Вот некоторые проблемы, которые у меня есть:

  1. У меня есть таблица Products, которая нужна во многих местах (инвентарь, выставление счетов, производство, ...). Если я добавлю таблицу Products в каждый файл dbml, linq конструктор собирается создать класс Product в каждом из них. Я не хочу этого Я хочу только один Product класс.
  2. У меня есть DataContext о доставке. Для этого нужно около 40 столов. Это делает файл dbml очень сложным в управлении. Есть ли способ создать меньшие dbml-файлы и затем включить их (в качестве ссылки) в какой-то "основной" dbml?

На данный момент мне действительно нравится Linq, но я думаю, что ему все еще не хватает инструмента дизайна для чего-то большего, чем 10 таблиц.

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

Я пропустил что-то большое или это текущее состояние дел с Линк в Sql?

Ответы [ 4 ]

3 голосов
/ 09 сентября 2010

Ну, мое решение состояло в том, чтобы использовать опцию /code SQLMetal для создания простых классов в файле .cs вместо файла DBML и использовать частичные классы в отдельном файле для расширения сгенерированных классов ORM.

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

1 голос
/ 09 ноября 2008

Зачем вам несколько файлов DBML? Просто вставь их всех в один. Вот как это должно работать.

0 голосов
/ 09 ноября 2008

Вы сталкивались с этой статьей на MSDN?

http://msdn.microsoft.com/en-us/library/bb387007.aspx

Кажется, есть инструмент командной строки для генерации объектной модели без использования визуального конструктора в VS.net.

0 голосов
/ 08 ноября 2008

Если бы я был вами, я бы использовал Entity Framework , так как в дальнейшем MSM рекомендует ORM Microsoft убивает Linq to SQL

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