我有以下方法。這將返回一個單一的訂單。但是我只想要第一個結果。什麼是實現這一目標的最佳方式。當然,我可以返回一個List,然後從中獲得第一個結果。NHibernate。得到單或默認
即.List<Order>().SingleOrDefault();
當然有遠通過標準API來達致這?
Model.Order order = _session
.CreateCriteria(typeof(Model.Order))
.Add(Restrictions.Eq("UserName", user.UserName))
.Add(Restrictions.Eq("CompanyId", companyId))
.Add(Restrictions.Eq("OrderStatus", OrderStatusHelper.OrderOpen()))
.AddOrder(sortOrder)
.UniqueResult<Model.Order>(); // results not always unique
請注意,FirstOrDefault與SingleOrDefault不同。當發現多於一條記錄時,Single應該拋出異常,因爲First將只返回找到的第一條記錄。 – 2016-04-14 12:45:48