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