Как надежно определить, что сущность является переходной? - PullRequest
3 голосов
/ 13 августа 2011

С NHibernate, как надежно проверить, является ли данная сущность временной (то есть еще не сохранена)?Ресурсы, которые я видел, рекомендуют что-то похожее на это:

public bool IsTransient()
{
    return this.Id == default(Guid);
}

Предполагая, что моя уже сохраненная сущность имеет целочисленный идентификатор, и он как-то равен 0, не сработает ли этот метод?

1 Ответ

4 голосов
/ 14 августа 2011

Если 0 является допустимым первичным ключом в вашем контексте, то да, это будет ненадежно.

По сути, «несохраненное значение» для идентификатора объекта определяет, является ли оно временным или постоянным.По умолчанию для типа установлено значение null или default ().Вы можете установить это вручную, когда вы делаете свое отображение.

Пока ваша логика в приведенном выше коде соответствует тому, что Nhibernate считает временным объектом, вы хороши.И Nhibernate примет любой объект, свойство Id которого равно «несохраненному значению», как временное.

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