2009-04-16 2 views
2

У меня есть особый случай отображения NHibernate. Класс имеет ссылку на себя.Как сопоставить самооценку в NHibernate

public class MyClass 
{ 
    public Guid Id { get; set; } 
    public MyClass SelfReference { get; set; } 
} 

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

Возможно ли это на карте и как это можно сделать?

ответ

3

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

<many-to-one name="SelfReference" class="MyClass" column="SelfReference_FK" /> 
0

Похоже, вы просто относитесь к нему так же, как к любым другим отношениям один к одному?

+0

Это работает, если оно может быть нулевым? – 2009-04-16 08:11:03

0

Я думаю, что это просто один к одному.

я надеюсь, что это поможет U

<one-to-one 
name="PropertyName" 
class="ClassName" 
cascade="all|none|save-update|delete" 
constrained="true|false" 
fetch="join|select" 
property-ref="PropertyNameFromAssociatedClass" 
access="field|property|nosetter|ClassName"/> 
3

Похоже, вы готовы к карте дерево:

http://nhibernate.hibernatingrhinos.com/16/how-to-map-a-tree-in-nhibernate

+0

Может ли NHibernate отображать только одно отношение «много-к-одному»? Обычно вам всегда нужны оба сайта. – 2009-04-16 08:27:07

+0

Вы также можете отобразить другой конец. У вас должно быть до конца: один-ко-многим, который содержит дочерние элементы текущего узла взаимно однозначный, который ссылается на родителя текущего узла –

+2

, ссылка не работает, можете ли вы ее исправить? – Erez

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