Oct 22, 2009

NHibernate mappings. Или каталог маппингов

Тут буду собирать полезные статьи относящиеся к маппингу NHibernate.
  • Наследование.
  • property – подробности про маппинг свойств.
  • component – если есть желание иметь вложенные классы в сущностях. Например чтобы у пользователя был адрес в виде объекта и обращаться  к нему можно было как user.Address.Street.
  • one-to-one – связь один к одному.
  • any – для связи таблиц, которые не связаны явно. (не знаю как это описать более точно, надо читать :) ).
  • many-to-any – расширение any маппинга.
  • join – аналог one-to-one, но позволяет замапить несколько таблиц в один объект.
  • dynamic-component – позволяет вынести набор свойств объекта в Dictionary. Возможно редко используемые свойства есть смысл туда вынести, чтобы не засорять сущность.
  • set – один из наиболее часто используемых элементов для маппинга коллекций.
  • Named queries <query/> and <sql-query/> – если нужно встраивать свой sql код в маппинги.
  • map – никогда не использовал сам. Но это еще один вариант организации связей между сущностями. Когда посмотрю возможно опишу более подробно.
  • list – главное отличие list от set – list может содержать повторяющиеся записи. Это значит что если вы попытаетесь в set добавить элемент, который уже содержится в коллекции (проверяется на равенство при помощи метода Equals()), то элемент не будет добавлен. Если же последнее действие проделать с list, то элемент может быть добавлен.

Далее рассмотрим наиболее часто встречающиеся структуры:

  1. Дерево. По поводу дерева еще один пост про то, как его эффективно вытаскивать из базы

Каталог буду пополнять по мере поступления :).

No comments:

Post a Comment