我正在重構舊式查詢CreateCriteria()
到QueryOver()
。我的Wcf服務獲取string PropertyName
以訂購查詢結果。對於IQueryable
我使用Dynamic LINQ來做這樣的排序,對於CreateCriteria()
- AddOrder()
。Nhibernate QueryOver。 OrderBy使用字符串屬性名稱。
IList<object[]> result =
GetSession()
.QueryOver(() => activity)
.JoinAlias(() => activity.ActivityLicense,() => license)
.Select(Projections.ProjectionList()
.Add(Projections.Count<Activity>(e => e.Id), "ActivityCount")
.Add(Projections.Group(() => license.SerialNumber), "SerialNumber")
.Add(Projections.Count<Activity>(e => e.MacAdress), "MacAddressCount")
.Add(Projections.Count<Activity>(e => e.IpAdress), "IpAddressCount")
)
.OrderByAlias("ActivityCount") // Compilation Error - I need such extension method
.List<object[]>();
任何建議如何做與字符串屬性名稱的情況下排序?
PS:我不能使用LINQ NHibernate的:LINQ to NHibernate - .GroupBy().Skip().Take() cause an exception
謝謝!
謝謝。是否有可能將ICriteria變回IQueryOver? – 2012-08-13 16:08:35
我不這麼認爲,你可以做的是重構成IQueryOver擴展方法。我會舉例... – dotjoe 2012-08-13 16:36:07