古いスタイルのクエリCreateCriteria()
をQueryOver()
にリファクタリングしています。私のWcfサービスは問い合わせ結果を注文するのにstring PropertyName
を得ます。 IQueryable
の場合、私はCreateCriteria()
- AddOrder()
のように、そのような順序を行うためにダイナミックLINQを使用します。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:私はNHibernateのにLINQを使うことができませんでした:LINQ to NHibernate - .GroupBy().Skip().Take() cause an exception
感謝を!
ありがとうございました。 ICriteriaをIQueryOverに戻すことは可能ですか? –
私はそうは思わない、あなたができることはIQueryOver拡張メソッドにリファクタリングすることです。私は例を投稿します... – dotjoe