2
分組,我需要使用NHibernate得到這個查詢計數:NHibernate的查詢,選擇按行
Select RequestStatus.[Status], Count(ApprovalRequest.Id)
From ApprovalRequest Inner Join RequestStatus On ApprovalRequest.CurrentStatusId = RequestStatus.Id
Where RequestStatus.[Status] In ('Approved', 'Queried') And ApprovalRequest.Deleted != 1
Group By RequestStatus.[Status]
這裏有我的課:
public class ApprovalRequest
{
public ApprovalRequest()
{
Id = Guid.NewGuid();
Statuses = new List<RequestStatus>();
}
/// <summary>
/// Identity No.
/// </summary>
public Guid Id { get; set; }
/// <summary>
/// Represents the current status of the request e.g. Approved.
/// </summary>
public RequestStatus CurrentStatus { get; set; }
/// <summary>
/// The statuses that the request experiences.
/// </summary>
public IList<RequestStatus> Statuses { get; set; }
}
}
public class RequestStatus
{
public RequestStatus()
{
Id = Guid.NewGuid();
}
public Guid Id { get; set; }
public StatusEnum Status { get; set; }
}
我嘗試此查詢:
var lst = uow.Session.QueryOver<ApprovalRequest>()
.JoinQueryOver<RequestStatus>(req => req.CurrentStatus)
.SelectList(list =>
list
.SelectCount(p => p.Id)
.SelectGroup(p => p.CurrentStatus.Status)
).List();
但我得到一個錯誤:
無法解析屬性:CurrentStatus.Status:ApprovalRequest(NHibernate)
非常感謝,但它給了我下面的錯誤:無法執行查找[SQL:SQL不可] –
哎呀,它的工作,我改變了的.List()後列出
有沒有簡單的方法將結果轉換爲Dictionary? –