Nhibernate 将ID分配给新对象

Nhibernate 将ID分配给新对象,nhibernate,oop,repository,Nhibernate,Oop,Repository,我有一个简单的域对象Movie,具有以下构造函数: public Movie(string title, int year = 0, Genre genre = Genre.None, int length = 0, IEnumerable<string> actors = null) { ... } 没有ID参数,因为无法预先知道ID是什么。电影确实有一个int-Id属性 这个对象将被发送到我的MovieRepository,它使用NHibernate。存储库有一个添加电影的方法

我有一个简单的域对象Movie,具有以下构造函数:

public Movie(string title, int year = 0, Genre genre = Genre.None, int length = 0, IEnumerable<string> actors = null) { ... }
没有ID参数,因为无法预先知道ID是什么。电影确实有一个int-Id属性

这个对象将被发送到我的MovieRepository,它使用NHibernate。存储库有一个添加电影的方法:void addmovie movie{…}

假设我希望在插入对象后与该对象交互,可能是为了显示数据或更改属性。我需要设置Id属性的对象,或者需要知道数据库生成的Id

我应该更改AddMovie方法以返回ID设置相同的电影,还是返回结果ID值?或者其他什么?

我建议更改AddMovie以返回新创建的电影,并指定其Id

由于Session.SaveOrUpdate方法已返回带有Id的对象,这非常简单。

在调用Session.Save或Session.SaveOrUpdate后,Id将返回给您以供将来查询


另请参见此项。

谢谢您的建议。我可以接收ID,然后获取并返回新保存的对象。@格兰特:我还建议您获取这本书。。这对我帮助很大: