User Tools

Site Tools


developer:linq:components

Использование LINQ-to-SQL классов при создании компонентов

Под компонентами в данном случае понимаются небольшие части функционала, которые могут быть повторно использованы. Каждая из этих частей обычно использует в качестве источника данных несколько связанных контентов и соответственно может быть построена на основе группы LINQ-to-SQL классов, которые генерируются для этих контентов. Поскольку LINQ-to-SQL классы, используемые в компонентах, должны быть переносимыми, их нужно создавать только при включенной опции Выполнять генерацию, независимую от БД (Proceed DB-independent generation) на уровне сайта.

Для выделения нескольких сущностных классов в одну группу нужно у нескольких контентов задать одинаковое значение в поле Имя дополнительного контекстного класса (Additional context class name). В качестве значения нужно указывать полное имя класса, с учетом пространств имен. Таким образом, один и тот же контент может участвовать в двух контекстных классах: основном, задаваемом на уровне сайта и дополнительном, задаваемом на уровне контентов. Пространства имен для всех генерируемых контекстных классов (как основного, так и дополнительных) для предотвращения конфликта имен должны различаться.

При использовании компонента, использующего LINQ-to-SQL классы на сайте необходимо:

  1. Воссоздать структуру контентов (например, с помощью механизма выборочного Backup/Restore и последующего Site Update). При этом также должна быть восстановлена информация о отображении в LINQ-to-SQL классы и свойства.
  2. Сгенерировать .map-файл привязки классов (поскольку классы для этого проекта генерировать не надо, можно установить опцию Генерировать только .map-файл (Generate only .map file) на уровне сайта).

Discussion

Enter your comment
 
developer/linq/components.txt · Last modified: 2011/05/06 17:00 by celutp