为新对象分配ID

时间:2010-08-27 18:35:38

标签: nhibernate oop repository

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

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

没有ID参数,因为无法预先了解ID的内容。 Movie确实有int Id属性。

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

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

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

2 个答案:

答案 0 :(得分:5)

调用Session.Save()Session.SaveOrUpdate()后,id将返回给您以供将来查询。

另见question

答案 1 :(得分:0)

我建议更改AddMovie以返回新分配的Movie {/ p}。

由于Session.SaveOrUpdate()方法已经返回带有Id的对象,因此非常简单。