In previous post we created a database table, filled it with sample data and saw some basic queries.
In this post we will query the table in { Menu.Title, IEnumerable<menu> } form. This will show Top menu title and sub menu items in a row.
Linq
var menus = from t in Menus
where t.MenuType==1
select new {
t.Title,
SubMenus = from s in Menus
where t.MenuType==1 && t.MenuID==s.MenuParent
select s
};
Lambda
Menus
.Where (t => (t.MenuType == 1))
.Select (
t =>
new
{
Title = t.Title,
SubMenus = Menus
.Where (s => ((t.MenuType == 1) && ((Int32?)(t.MenuID) == s.MenuParent)))
}
)
SQL
DECLARE @p0 Int = 1
DECLARE @p1 Int = 1
SELECT [t0].[Title], [t1].[MenuID], [t1].[Title] AS [Title2], [t1].[Url], [t1].[MenuParent], [t1].[MenuType], (
SELECT COUNT(*)
FROM [Menu] AS [t2]
WHERE ([t0].[MenuType] = @p0) AND (([t0].[MenuID]) = [t2].[MenuParent])
) AS [value]
FROM [Menu] AS [t0]
LEFT OUTER JOIN [Menu] AS [t1] ON ([t0].[MenuType] = @p0) AND (([t0].[MenuID]) = [t1].[MenuParent])
WHERE [t0].[MenuType] = @p1
0 comments:
Post a Comment