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;}
}
4

1 回答 1

2

您需要实例化一个 Parent 对象。但是,这并不意味着您实际上必须从数据库中加载父记录。如果您可以使用 session.Load 来实例化 Parent 对象,那么只要您为实体启用了延迟加载,那么这只会创建一个包含 Id 的代理对象。

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

session.Save(c);
于 2013-05-31T09:18:48.390 回答