我有一个简单的域对象 Movie
,具有以下构造函数:
public Movie(string title, int year = 0, Genre genre = Genre.None, int length = 0, IEnumerable<string> actors = null) { ... }
没有 ID 参数,因为无法预先知道 ID 是什么。 Movie
确实有一个 int Id
属性。
这个对象将被发送到我的使用 NHibernate 的 MovieRepository
。存储库有一个添加电影的方法:void AddMovie(Movie movie) { ... }
。
假设我想在插入对象后与其进行交互,也许是为了显示数据或更改属性。我需要设置了 Id
属性的对象,或者需要知道数据库生成的 ID。
我应该更改 AddMovie
方法以返回设置了 ID 的同一部电影,还是应该返回结果 ID 值?或者也许还有其他什么?
最佳答案
调用 Session.Save()
或 Session.SaveOrUpdate()
后,id
将返回给您以供将来查询。
另请参阅此 question .
关于nhibernate - 为新对象分配 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3587129/