Присвоение идентификатора новому объекту - PullRequest
2 голосов
/ 27 августа 2010

У меня есть простой объект домена, 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 или необходимо знать идентификатор, сгенерированный базой данных.

Должен ли я изменить метод AddMovie, чтобы он возвращал тот же фильм с установленным идентификатором, илия должен вернуть полученное значение идентификатора?Или, может быть, что-то еще?

Ответы [ 2 ]

5 голосов
/ 27 августа 2010

После вызова Session.Save() или Session.SaveOrUpdate() id будет возвращено вам для будущих запросов.

См. Также этот вопрос .

0 голосов
/ 27 августа 2010

Я бы порекомендовал изменить AddMovie, чтобы вернуть вновь созданный Movie с назначенным ему идентификатором.

Поскольку метод Session.SaveOrUpdate() уже возвращает объект с его идентификатором, это довольно просто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...