Как можно проверить с помощью NHibernate, если в базе данных уже есть объект с данным идентификатором? - PullRequest
0 голосов
/ 18 ноября 2009

У меня простой вопрос, учитывая идентификатор (и, конечно, тип объекта), как лучше всего проверить, присутствует ли этот идентификатор в базе данных с помощью NHibernate?

Спасибо.

Ответы [ 2 ]

1 голос
/ 19 ноября 2009

Использование интерфейса ICriteria nhibernate как-то так

Session.CreateCriteria(typeof(User))  
    .Add(Expression.Eq("Id", 1))  
    .List<User>();

или

Session.CreateCriteria(typeof(User))  
  .Add(Expression.IdEq(1))  
  .List<User>();

или

IList<int> recs = Session.CreateCriteria(typeof(User))  
.SetProjection(Projections.Count("UserId"))  
.Add(Expression.IdEq(1))  
.List<int>();

recs.Count;
0 голосов
/ 19 ноября 2009

Я предполагаю, не извлекая объект? как то так ...

bool exists = session.CreateCriteria<YourObject>()
    .SetProjection(Projections.Constant(1))
    .Add(Restrictions.IdEq(id))
    .UniqueResult != null;

для вашей стандартной проверки нуля на select 1 from YourObjectTable where id = @id

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