我正在嘗試計算有多少患者與設備相關聯的非活動患者總數。以下返回值4.它需要返回1的值,因爲有1個病人不能使用4件設備。如何獲得根記錄的唯一計數,而不是兒童記錄?
return FluentSessionManager.GetSession()
.CreateCriteria<Patients>()
.CreateAlias("Locations", "l")
.CreateAlias("l.Branches", "b")
.CreateAlias("PatientsEquipment", "pe")
.Add(Expression.Eq("b.ID", branchID))
.Add(Expression.Eq("CurrentStatus", Enumerations.PatientStatus.Inactive))
.Add(Expression.IsNull("pe.PickupDate"))
.Add(Expression.Eq("pe.PickupRequestSent", false))
.Add(Expression.Eq("pe.MaintenanceRequestSent", false))
.SetResultTransformer(new DistinctRootEntityResultTransformer())
.SetProjection(Projections.Count("ID")).UniqueResult<int>();
,如果我做了以下我可以得到一個準確計數:
ICriteria query = FluentSessionManager.GetSession()
.CreateCriteria<Patients>()
.CreateAlias("Locations", "l")
.CreateAlias("l.Branches", "b")
.CreateAlias("PatientsEquipment", "pe")
.Add(Expression.Eq("b.ID", branchID))
.Add(Expression.Eq("CurrentStatus", Enumerations.PatientStatus.Inactive))
.Add(Expression.IsNull("pe.PickupDate"))
.Add(Expression.Eq("pe.PickupRequestSent", false))
.Add(Expression.Eq("pe.MaintenanceRequestSent", false))
.SetResultTransformer(Transformers.DistinctRootEntity);
IList<Patients> patients = query.List<Patients>();
if (patients == null)
{
return 0;
}
return patients.Count();
任何想法如何,我可以得到一個準確的患者數量,而不返回一個完整的記錄集,然後計算呢?
在此先感謝。
我試過了。沒有骰子。它沒有任何區別。 –