How can one check with NHibernate if there is already an object in the database with the given id?
My question is simple, given an ID (and the object type, of 开发者_Go百科course) what is the best way to check whether this ID is present in the database using NHibernate?
Thanks.
Using the ICriteria interface of nhibernate something like this
Session.CreateCriteria(typeof(User))
.Add(Expression.Eq("Id", 1))
.List<User>();
or
Session.CreateCriteria(typeof(User))
.Add(Expression.IdEq(1))
.List<User>();
or
IList<int> recs = Session.CreateCriteria(typeof(User))
.SetProjection(Projections.Count("UserId"))
.Add(Expression.IdEq(1))
.List<int>();
recs.Count;
I assume without retrieving the object? something like this...
bool exists = session.CreateCriteria<YourObject>()
.SetProjection(Projections.Constant(1))
.Add(Restrictions.IdEq(id))
.UniqueResult != null;
for your standard null check on select 1 from YourObjectTable where id = @id
精彩评论