我一直在使用Nhibernate一段时间,但是想知道你是否是一种使用父项而不是整个父项来保存我的子实体的方法。
Class Parent
{
int Id {get;set;}
string name {get;set;}
}
Class Child
{
int Id {get;set;}
string name {get;set;}
Parent parent {get;set;}
}
答案 0 :(得分:2)
您需要实例化一个Parent对象。但是,这并不意味着您实际上必须从数据库加载父记录。如果您可以使用session.Load来实例化Parent对象,只要您为实体启用了延迟加载,这只会创建一个包含Id的代理对象。
var c = new Child() {
name = "Foo",
parent = session.Load<Parent>(parentId)
};
session.Save(c);