|
NHibernate, IgnoreProperty используя ClassMap
|
|||
---|---|---|---|
#18+
Доброго времени суток! Допустим есть класс и в нем есть свойство, которое не нужно мэппить (Barcode) Код: c# 1. 2. 3. 4. 5. 6.
Для мэппинга я использую Fluent Api и на каждую сущность создаю ClassMap.. Вопрос в том, как заставить NHibernate игнорировать свойство Barcode. Код: c# 1. 2. 3. 4. 5. 6. 7.
Вариантов я пока вижу два : использовать auto-mapping (что не желательно) или сделать поле Barcode виртуальным (что тоже не желательно) Что уже нашел по этой теме тыц и тыц ... |
|||
:
Нравится:
Не нравится:
|
|||
10.05.2012, 20:17 |
|
NHibernate, IgnoreProperty используя ClassMap
|
|||
---|---|---|---|
#18+
besserebrenik, с трудом понимаю, что вы хотите. Просто не замапливайте это свойство, и NHibernate не будет его сохранять. Если речь о том, что NH хочет сделать свойство виртуальным - то этого можно избежать, только отключив Lazy Loading. NHibernate для ленивой загрузки генерирует динамические прокси, и перегружает все public и protected свойства и методы. Для этого они и нужны ему виртуальными. Так что правильный вариант - сделать свойство виртуальным, и не парится. PS. Когда используете Fluent NHibernate, то так его и называйте. Иначе сложно понять, что за мифическое Fluent Api. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.05.2012, 10:11 |
|
NHibernate, IgnoreProperty используя ClassMap
|
|||
---|---|---|---|
#18+
SolYUtor, Доменные модели бывают гораздо сложнее чем Код: c# 1. 2. 3. 4.
Иногда мы и наследуем от типов которые изменить не можем. Да и представьте что вам вверх по иерархии нужно все члены классов объявить виртуальными. И если NHibernate требует, чтобы поля для мэппинга были виртуальными , то проблем нет - пусть будут. Но я задался вопросом, почему поля, которые не требуют мэппинга также должны быть виртуальными и не более того. Насчет вашего совета - спасибо, иного выхода не вижу..Просто хотел разобраться с вопросом. Пока ни в каких источниках найти ответ не могу. Читать исходники этого проекта мне не по силам ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2012, 01:33 |
|
NHibernate, IgnoreProperty используя ClassMap
|
|||
---|---|---|---|
#18+
besserebrenikПока ни в каких источниках найти ответ не могу Еще раз, NHibernate при запуске приложения создаёт динамическую сборку с прокси-типами ваших объектов. При этом он наследует все замапленные типы, и переопределяет (override) в них все public и protected свойства. Чтобы он мог их перегрузить - они должны быть виртуальными. Перегружает их в целях ленивой загрузки. Посмотрите под отладчиком загруженную из базы сущность. Увидите, что это не ваш тип, а отнаследованный от него прокси-тип. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2012, 12:03 |
|
|
start [/forum/topic.php?fid=17&msg=37788861&tid=1350357]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
152ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 261ms |
0 / 0 |