カウント:Count()
が生成するSQLはLINQのグループ化、私は以下のように私のLINQを持つ単一の列
from ucd in UserCategoryDetails
join uc in UserCategories on ucd.UserCategoryDetailsID equals
uc.UserCategoryDetailsID into ucj from uc in ucj.DefaultIfEmpty()
join uct in UserCategoryTypes on ucd.UserCategoryTypeID equals
uct.UserCategoryTypeID
join cc in UserCategoryColours on ucd.UserCategoryColourID equals
cc.UserCategoryColourID
where
ucd.UserCategoryTypeID == 2 &&
ucd.UserID == 1
group ucd by new {
ucd.UserCategoryDetailsID,
ucd.CategoryName,
cc.UserCategoryColourID,
cc.ImageSrcLarge,
cc.ImageSrcSmall
} into g
select new {
UserCategoryDetailsID = g.Key.UserCategoryDetailsID,
CategoryName = g.Key.CategoryName,
CategoryColourID = g.Key.UserCategoryColourID,
ImageSrcLarge = g.Key.ImageSrcLarge,
ImageSrcSmall = g.Key.ImageSrcSmall,
CategoryCount = g.Count()
}
トラブルインクルードが行ではないときには1を返すような結果をめちゃくちゃさCOUNT(*)
、されていますUserCategories。
誰かがCOUNT(uc.ProjectID)
の同等のLINQを生成する方法を教えてもらえますか?基本的には次のSQLステートメントが、LINQには:
SELECT
[t0].[UserCategoryDetailsID], [t0].[CategoryName],
[t3].[UserCategoryColourID], [t3].[ImageSrcLarge],
[t3].[ImageSrcSmall], COUNT([t1].ProjectID) AS [CategoryCount]
FROM
[UserCategoryDetails] AS [t0]
LEFT OUTER JOIN [UserCategory] AS [t1] ON
[t0].[UserCategoryDetailsID]) = [t1].[UserCategoryDetailsID]
INNER JOIN [UserCategoryType] AS [t2] ON
[t0].[UserCategoryTypeID] = [t2].[UserCategoryTypeID]
INNER JOIN [UserCategoryColour] AS [t3] ON
[t0].[UserCategoryColourID] = [t3].[UserCategoryColourID]
WHERE
([t0].[UserCategoryTypeID] = 2) AND ([t0].[UserID] = 1)
GROUP BY
[t0].[UserCategoryDetailsID], [t0].[CategoryName],
[t3].[UserCategoryColourID], [t3].[ImageSrcLarge],
[t3].[ImageSrcSmall]
は、LINQからSQLへ、またはLINQツーエンティティこのですか?これらのオブジェクトは相互にナビゲーションプロパティを持っていますか? –