Castle ActiveRecordsとLINQまたはHQLを使用して次のクエリを実行するにはどうすればよいですか。LINQまたはHQLを使用して次のSQLクエリを実行する方法
アカウントからの最初の
AS SELECT a.id、s.classes、COUNT(p.id)、MAX(p.date)AS最後、MIN(p.date)
LEFTは学校ののJOIN s.account_id = a.id
LEFTユーザをJOIN U ON u.account_id = a.id
左側のBY P上p.user_id = u.id
WHERE支払い= "S"
GROUPポイントを登録しよう。 id
テーブルはi nは、次の方法:
(私はそれが動作手順でクエリを実行する場合は、しかし、多数の行があるとして、それは遅いです)私も定義された正しい関係を持つすべてのテーブルのActiveRecordのクラスを持っていると私が試しました働いていなかった、以下:
var result = from account in AccountRecord.Queryable
join s in SchoolRecord.Queryable on account equals s.Account into schools
from school in schools.DefaultIfEmpty(null)
join user in UserRecord.Queryable on account equals user.Account
join p in PointsRecord.Queryable on user equals p.User into points
where account.PaymentType == "S"
select new { Account = account, School = school, Count = points.Count() };
で次The method or operation is not implemented
-Exceptionを投げた:
NHibernate.Linq.Visitors.QueryModelVisitor.VisitGroupJoinClause(groupJoinClause groupJoinClause、queryModel queryModel、のInt32インデックス)HQLを使用したソリューションが見つかり
あなたはS 'でグループする必要はありません。クラスは有効なSQLクエリを取得するか? –
いいえ、 's.classes'は学校のクラスの量を示す学校表のint列です。実際には、アカウントと学校のテーブルからいくつかの列が必要ですが、ここではこれを主な問題にしていますが、投稿されたSQLクエリはDBに対して直接実行されたときに機能します。 – ChrFin