Методы расширения на класс Poco в дозвуковой? - PullRequest
1 голос
/ 09 февраля 2011

Я подумываю о переходе с беглого nhibernate на дозвуковой, поскольку nhib, похоже, просто занимает МАССИВНУЮ область памяти, которая мне действительно не нравится, но я просто хочу проверить, как дозвуковой (простой репозиторий, вероятно) справится:

  • добавление дополнительных полей в базу данных: на данный момент я могу сопоставить значение словаря с полем в базе данных, что ОЧЕНЬ круто, возможно ли это в дозвуковом режиме?(или что-нибудь подобное?)

    FWIW: DynamicComponent (x => x.PropertyBag, GetDynamicComponentPart);где propertybag - это словарь.

  • отношения многие ко многим

  • каскадное сохранение / удаление
  • отображение сложного объекта в xml или varchar(max) столбец (разделить его на xml, очевидно)

1 Ответ

2 голосов
/ 09 февраля 2011
* adding extra fields to a database: at the moment I can map a

значение словаря для поля в база данных, которая очень крутая, это возможно в дозвуке? (или что-нибудь подобное?)

  FWIW: DynamicComponent(x => x.PropertyBag,

GetDynamicComponentPart); где propertybag - это словарь.

Добавление полей довольно просто. Просто добавьте поле в таблицу, а затем заново сгенерируйте классы из шаблона T4.

Вы не получите никакого отображения, кроме базовых примитивных типов. Конечно, не словарь в поле.

* many to many relationships

Вам придется вносить пользовательские изменения в шаблон T4, чтобы получить какую-либо поддержку таблиц «многие ко многим». SubSonic обрабатывает их как любой другой стол.

Я сделал такие модификации, и они имеют ограниченную полезность.

* cascading saves/deletes

Только на стороне СУБД. То есть, если вы устанавливаете отношения внешнего ключа с каскадами. SubSonic не делает ничего этого.

* mapping a complex object to an xml or varchar(max) column (seralize

это в xml, очевидно)

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

SubSonic - это совершенно другое поле, чем NHibernate. Я бы назвал NHib ORM, но я бы не назвал это SubSonic. Роб Конери, автор SubSonic, назвал бы это инструментом запросов.

Это очень упрощенно, что является его целью и силой (а также слабостью). Это помогает с запросами и модификациями строго типизированным способом. По сравнению с NHib или даже Entity Framework ему не хватает огромного количества функций и возможностей конфигурирования / расширяемости.

Я бы предостерег от перехода с NHib на SS, особенно если у вас уже есть какая-то функциональность, реализованная в NHibernate. Не то чтобы SS - плохой инструмент, но у него много ограничений.

...