Advertisements advertisements = NHibernateSession.CreateCriteria(typeof(Advertisements))
.Add(Restrictions.Eq(AdvertisementsProperties.Price.ToString(), price))
.Add(Restrictions.Eq(AdvertisementsProperties.HollidayDuration.ToString(), hollidayDuration))
.Add(Restrictions.Eq(AdvertisementsProperties.Name.ToString(), name))
.Add(Restrictions.Eq(AdvertisementsProperties.Description.ToString(), description))
//.Add(Restrictions.Eq(AdvertisementsProperties.DepartureDate.ToString(), departureDate))
.Add(Restrictions.Eq(AdvertisementsProperties.City.ToString(), city))
.Add(Restrictions.Eq(AdvertisementsProperties.Area.ToString(), area))
.Add(Restrictions.Eq(AdvertisementsProperties.Country.ToString(), country))
.Add(Restrictions.Eq(AdvertisementsProperties.Agency.ToString(), agency))
.UniqueResult<Advertisements>();但城市、地区或国家可以为空。如何将数据库中的null与nhibernate进行比较?
发布于 2010-08-02 03:02:17
public AbstractCriterion EqOrNull(string property, object value) {
if (value == null)
return Restrictions.IsNull(property);
return Restrictions.Eq(property, value);
}例如:
session.CreateCriteria<Advertisements>()
.Add(EqOrNull(AdvertisementsProperties.City.ToString(), city));另请参阅HHH-2951
发布于 2010-08-02 03:06:21
session.CreateCriteria<Advertisements>()
.Add(Expression.Or(
Expression.Eq("AdvName", "Cool Advertisement"),
Expression.IsNull("AdvName"))
).List<Advertisements>();https://stackoverflow.com/questions/3381182
复制相似问题