2013-05-31 5 views
0

Я использую Nhibernate некоторое время, но задавался вопросом, был ли этот способ сохранить мой дочерний объект, используя только Id родительского элемента, а не весь родительский элемент.Сохранение родительского объекта с использованием идентификатора объекта, чем с использованием целого объекта

Class Parent 
{ 
int Id {get;set;} 
string name {get;set;} 
} 

Class Child 
{ 
int Id {get;set;} 
string name {get;set;} 
Parent parent {get;set;} 
} 

ответ

2

Необходимо создать экземпляр родительского объекта. Однако это не означает, что вам действительно нужно загрузить родительскую запись из базы данных. Если вы можете использовать session.Load для создания экземпляра родительского объекта, при условии, что для ваших объектов включена ленивая загрузка, это не делает ничего, кроме создания прокси-объекта, который содержит Id.

var c = new Child() { 
    name = "Foo", 
    parent = session.Load<Parent>(parentId) 
}; 

session.Save(c); 
+0

Спасибо за решение. Как вы получаете глубокое знание nhibernate? – user1394622

+0

Борясь с ним в производстве, используйте около четырех лет. – jsur

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