为新对象分配ID

Gra*_*lin 2 oop nhibernate repository

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

public Movie(string title, int year = 0, Genre genre = Genre.None, int length = 0, IEnumerable<string> actors = null) { ... }
Run Code Online (Sandbox Code Playgroud)

没有ID参数,因为无法预先知道ID是什么.Movie确实有int Id房产.

这个对象将被发送到我的MovieRepository,它使用NHibernate.存储库有一种添加电影的方法:void AddMovie(Movie movie) { ... }.

假设我想在插入对象后与对象进行交互,可能是为了显示数据或更改属性.我需要具有Id属性集的对象,或者需要知道数据库生成的ID.

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

小智 5

Session.Save()或者Session.SaveOrUpdate()被调用时,id 将退还给你以后的查询.

另见这个问题.