如果数据库中已存在具有给定id的对象,如何使用NHibernate进行检查?

时间:2009-11-18 19:55:10

标签: .net nhibernate

我的问题很简单,给定一个ID(当然还有对象类型)使用NHibernate检查数据库中是否存在此ID的最佳方法是什么?

感谢。

2 个答案:

答案 0 :(得分:1)

使用nhibernate的ICriteria接口

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;

答案 1 :(得分:0)

我假设没有检索对象?像这样......

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

select 1 from YourObjectTable where id = @id

的标准空值检查