2009-09-02 3 views
0

У меня есть то, что, по моему мнению, должно быть довольно простой проблемой сопоставления, но не удавалось выяснить, что мне не хватает, чтобы заставить его работать. Я просто прыгнуть в простой пример, чтобы добраться до точки, что я хочу:Проблема базового класса Nhibernate Inheritance

//Base user class 
public class UserBase : Entity 
{ 
    //properties user class should have 
} 
// 
//Concrete User class (in different assembly) 
// 
//Item in same assembly as UserBase 
public class Item : Entity 
{ 
    public virtual UserBase User { get; set; } 
    //other properties etc.. 
} 

Так UserBase класс прибудет он реализован и отображаются как часть класса пользователя в другой сборке. Это нормально, но поскольку я не сопоставляю UserBase как собственное сопоставление, когда сопоставление пытается запустить класс Item, он взрывается, потому что UserBase не отображается.

Мой вопрос: Можно ли указать классу Item использовать любой конкретный класс для UserBase?

Я использую Fluent NHibernate для выполнения своих сопоставлений, но я думаю, что до тех пор, пока я могу правильно надавить на то, как должен выглядеть файл сопоставления, я могу выяснить, как это сделать в Fluent NHibernate.

Спасибо, Bryan

ответ

0

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

Существует 3 способа реализации наследования в NHibernate. Я не знаю, есть ли у Fluent документация об этом, но я считаю, что статья this должна быть полезной, чтобы вы начали.

+0

Я раньше смотрел на это, но думал, что может быть более красивый способ сделать это. Я думаю, это имеет смысл. – 2009-09-04 12:55:46

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