3

Я использую Fluent NHibernate для отображения существующей базы данных. По этой причине автоматизация - это не вариант для меня.Как сообщить Fluent NHibernate игнорировать определенные свойства без автоматического выбора?

Как сообщить NHibernate о том, чтобы не отображать определенные свойства? Многие из них доступны только для чтения, а другим не нужно настаивать по другим причинам.

Я пишу это в VB.Net.

Я получаю сообщение об ошибке типичные: «Следующие типы не могут быть использованы в качестве прокси- ... должно быть„общественное/защищенный виртуальный“или" защищенный внутренний виртуальный»

Я намеренно не сделал мои объекты Overridable (эквивалентно виртуальному в C#), потому что я не хочу, чтобы NHibernate прикасался к ним.

Как я могу это достичь?

+0

Меня все еще интересует менее хак-иш-ответ, но я нашел обходное решение на этом посту: http://stackoverflow.com/questions/907576/how-to-tell-fluent-nhibernate-not-to- map-a-class-property Вопрос, помеченный как ответ, применим только к AutoMapping, а не к ClassMapping. Если вы внимательно прочтете комментарии, в нижней части они упомянут просто создание класса Virtual (overridable). Сначала это кажется странным, но в последнем комментарии упоминается, что это не имеет побочных эффектов, если вы не пытаетесь сопоставить это свойство. Он просто создаст прокси-сервер, который он никогда не будет использовать. – Origin

+2

[Здесь] (http://stackoverflow.com/questions/2278110/nhibernate-exception-method-add-should-be-public-protected-virtual-or-protec) - хороший ответ о том, почему вам нужно сделать все методы (и, конечно, свойства) виртуальные. Речь идет о NHibernate, а не о FluentNHibernate. –

ответ

6

Все свойства и методы должны быть переопределяемыми для того, чтобы NHibernate создавал динамические прокси-серверы, включая неотображаемые свойства. Это не означает, что NHibernate отображает ваши свойства только для чтения, а просто требует от них переопределения, чтобы он мог генерировать прокси-сервер класса. This article объясняет это требование.

+0

Спасибо за ответ. С тех пор мне это тоже сказал кто-то другой, но забыл обновить его здесь. – Origin

+0

Это очень неудачно, потому что у меня есть unmapped свойства, которые я не хочу переопределять или изменять: -/но, о, хорошо. Ответ помог, спасибо. –

 Смежные вопросы

  • Нет связанных вопросов^_^