グループ、アクティビティ、コメントの 3 つのエンティティがあります。各エンティティは、db でテーブルとして表されます。グループには多くのアクティビティがあり、アクティビティには多くのコメントがあります。各エンティティには CreatedDate フィールドがあります。すべてのグループ + そのグループのオブジェクト グラフで作成された最新のエンティティの CreatedDate を照会する必要があります。
必要なものを提供する SQL クエリを作成しましたが、エンティティ フレームワークでこれを行う方法がわかりません。具体的には次の行:(SELECT MAX(X)
FROM (VALUES (g.CreatedDate), (a.CreatedDate), (c.CreatedDate))
ご協力いただきありがとうございます。完全なクエリは次のとおりです。
WITH GroupWithLastActivityDate AS (
SELECT DISTINCT
g.Id
,g.GroupName
,g.GroupDescription
,g.CreatedDate
,g.ApartmentComplexId
,(SELECT MAX(X)
FROM (VALUES (g.CreatedDate), (a.CreatedDate), (c.CreatedDate)) AS AllDates(X)) AS LastActivityDate
FROM Groups g
LEFT OUTER JOIN Activities a
on g.Id = a.GroupId
LEFT OUTER JOIN Comments c
on a.Id = c.ActivityId
WHERE g.IsActive = 1
)
SELECT
GroupId = g.Id
,g.GroupName
,g.GroupDescription
,g.ApartmentComplexId
,NumberOfActivities = COUNT(DISTINCT a.Id)
,g.CreatedDate
,LastActivityDate = Max(g.LastActivityDate)
FROM GroupWithLastActivityDate g
INNER JOIN Activities a
on g.Id = a.GroupId
WHERE a.IsActive = 1
GROUP BY g.Id
,g.GroupName
,g.GroupDescription
,g.CreatedDate
,g.ApartmentComplexId
今のところ、SqlQuery を使用してクエリを実行しているこのクエリ (およびその他のもの) を使用してビューを作成したことを追加する必要があります。