Зачем вам создавать свой собственный файл сопоставления XML для Linq to SQL вместо использования dbml? - PullRequest
2 голосов
/ 11 марта 2010

Я вижу, что в ряде публикаций говорится о развертывании вашего собственного файла сопоставления LINQ to SQL XML. Почему вы делаете это вместо использования SQLMetal или дизайнера, встроенного в студию? Это потому, что вы хотите работать со своими POCO?

1 Ответ

3 голосов
/ 11 марта 2010

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

Вероятно, самое большое единственное преимущество использования внешнего сопоставления заключается в том, что оно нарушает зависимость вашей модели от Linq to SQL, поэтому вы можете (например) взять те же классы модели и использовать их с Entity Framework или NHibernate. Проекты или сборки, которым необходимо использовать модель, не обнаруживают нежелательную зависимость от сборки System.Data.Linq.

Другие вещи, которые вы можете сделать:

  • Включить логику проверки или другую сложную логику в установщики свойств;
  • Использовать виртуальные свойства (для прокси);
  • Украсить существующие свойства другими атрибутами (например, сериализация);
  • и т.д.

Ничего из этого невозможно с помощью сгенерированного кода. Вы можете расширять с помощью частичных классов, но это позволяет только добавлять элементы, а не изменять существующие. Очевидно, вы можете изменить сгенерированный дизайнером код, но ваши изменения просто будут перезаписаны.

Как я уже говорил, многим проектам эти вещи не нужны, но многим проектам это нужно, и если у вас есть тот, который делает это, вы довольно быстро превзойдете конструктор DBML и SqlMetal.

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