2009-09-01 5 views
1

Это вопрос о новичках в «Нынешнем NHibernate», так что несите меня.Переопределение свободноходных NHibernate Automappings

У меня есть набор классов, и я применяю к ним возможности Automapping.

Но мне нужно отметить одно из свойств одного из методов с помощью уникального ограничения.

В Fluent вики, это говорит

Иногда необходимо сделать незначительные изменения в конкретной организации, не желая влиять на что-либо еще ; вы можете сделать это с помощью метода переопределения .

.Override (карта => {
map.HasMany (X => x.Products) .Cascade.All();});

Но я не могу понять, к какому объекту применить метод .Override.

Прямо сейчас, у меня есть

AutoPersistenceModel returnModel = AutoMap.AssemblyOf()

Но объект AutoPersistenceModel не имеет метода Override.

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

Спасибо.

ответ

3

У этого метода Override значение 1.0 RTM. Вы используете его следующим образом:

AutoMap.AssemblyOf<Person>().Override<Shelf>(map => 
{ 
    map.HasMany(x => x.Products).Cascade.All(); 
}); 
+0

Хм. В DLL FluentNHibernate, на которую я ссылаюсь, есть версия продукта 1.0.0.0, но Intellisense уверен, что не отображает метод переопределения. Если я в любом случае вынужу его и попытаюсь его построить, я получаю сообщение об ошибке «... AutoPersistenceModel не содержит определения для Override ...» –

+0

Вам нужно проверить, что у вас есть правильная версия сборки. Я загрузил его с http://fluentnhibernate.org/downloads/releases/fluentnhibernate-1.0RTM.zip, а класс AutoPersistenceModel определенно имеет метод переопределения. Он также имеет версию = 1.0.0.593 вместо 1.0.0.0 –

+0

Мои извинения. Ты прав. У меня была версия 1.0RC, а не 1.0RTM. Спасибо за вашу помощь. –