ASP.NET Core - Entity Framework Query Through Database

For the development of any web application, a database is both an essential and crucial part of the process. Microsoft Entity Framework has introduced three approaches for communication between the web application and its corresponding database engine, i.e.,

  1. Database first approach.
  2. Code first approach.
  3. Model first approach.

In Microsoft .NET Core, usability mechanism of all the above three approaches is slightly different from ASP.NET MVC Framework.

In today's tutorial, I will demonstrate querying, i.e., reading the data into a web application and inserting data into the table of a database by using the Entity Framework database-first approach.

ASP.NET Core - Entity Framework Query Through Database

Prerequisites

Following are some prerequisites before you proceed further in this tutorial.

  1. Basic understanding of ASP.NET Core framework.
  2. Upgrade Windows PowerShell to the latest version.
  3. Knowledge of Entity Framework
  4. Knowledge of Bootstrap.
  5. Knowledge of C# programming.
  6. Knowledge of C# LINQ.

You can download the complete source code for this tutorial or you can follow the step by step discussion below. The sample code is developed in Microsoft Visual Studio 2017 Professional & SQL Server 2014. I have taken the data sample from AdventureWorks for SQL Server 2014.

Let's begin now.

Step 1

First, create your existing SQL Server database named "db_core_ef_first" which will be utilized in ASP.NET Core web application by executing the following SQL script.

  1. USE [db_core_ef_first]  
  2. GO  
  3. /****** Object:  Table [dbo].[tbl_vendor]    Script Date: 9/24/2018 11:08:05 AM ******/  
  4. DROP TABLE [dbo].[tbl_vendor]  
  5. GO  
  6. /****** Object:  Table [dbo].[tbl_product]    Script Date: 9/24/2018 11:08:05 AM ******/  
  7. DROP TABLE [dbo].[tbl_product]  
  8. GO  
  9. /****** Object:  Table [dbo].[tbl_department]    Script Date: 9/24/2018 11:08:05 AM ******/  
  10. DROP TABLE [dbo].[tbl_department]  
  11. GO  
  12. /****** Object:  Table [dbo].[tbl_department]    Script Date: 9/24/2018 11:08:05 AM ******/  
  13. SET ANSI_NULLS ON  
  14. GO  
  15. SET QUOTED_IDENTIFIER ON  
  16. GO  
  17. CREATE TABLE [dbo].[tbl_department](  
  18.  [DepartmentId] [int] IDENTITY(1,1) NOT NULL,  
  19.  [Name] [nvarchar](maxNOT NULL,  
  20.  [GroupName] [nvarchar](maxNOT NULL,  
  21.  CONSTRAINT [PK_tbl_department] PRIMARY KEY CLUSTERED   
  22. (  
  23.  [DepartmentId] ASC  
  24. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ONON [PRIMARY]  
  25. ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]  
  26.   
  27. GO  
  28. /****** Object:  Table [dbo].[tbl_product]    Script Date: 9/24/2018 11:08:05 AM ******/  
  29. SET ANSI_NULLS ON  
  30. GO  
  31. SET QUOTED_IDENTIFIER ON  
  32. GO  
  33. CREATE TABLE [dbo].[tbl_product](  
  34.  [ProductID] [int] IDENTITY(1,1) NOT NULL,  
  35.  [Name] [nvarchar](maxNOT NULL,  
  36.  [ProductNumber] [nvarchar](maxNOT NULL,  
  37.  [Color] [nvarchar](maxNOT NULL,  
  38.  [Quantity] [intNOT NULL,  
  39.  [Price] [money] NOT NULL,  
  40.  CONSTRAINT [PK_tbl_product] PRIMARY KEY CLUSTERED   
  41. (  
  42.  [ProductID] ASC  
  43. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ONON [PRIMARY]  
  44. ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]  
  45.   
  46. GO  
  47. /****** Object:  Table [dbo].[tbl_vendor]    Script Date: 9/24/2018 11:08:05 AM ******/  
  48. SET ANSI_NULLS ON  
  49. GO  
  50. SET QUOTED_IDENTIFIER ON  
  51. GO  
  52. CREATE TABLE [dbo].[tbl_vendor](  
  53.  [VendorId] [int] IDENTITY(1,1) NOT NULL,  
  54.  [Name] [nvarchar](maxNOT NULL,  
  55.  CONSTRAINT [PK_tbl_vendor] PRIMARY KEY CLUSTERED   
  56. (  
  57.  [VendorId] ASC  
  58. )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ONON [PRIMARY]  
  59. ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]  
  60.   
  61. GO  
  62. SET IDENTITY_INSERT [dbo].[tbl_department] ON   
  63.   
  64. INSERT [dbo].[tbl_department] ([DepartmentId], [Name], [GroupName]) VALUES (1, N'Engineering', N'Research and Development')  
  65. INSERT [dbo].[tbl_department] ([DepartmentId], [Name], [GroupName]) VALUES (2, N'Tool Design', N'Research and Development')  
  66. INSERT [dbo].[tbl_department] ([DepartmentId], [Name], [GroupName]) VALUES (3, N'Sales', N'Sales and Marketing')  
  67. INSERT [dbo].[tbl_department] ([DepartmentId], [Name], [GroupName]) VALUES (4, N'Marketing', N'Sales and Marketing')  
  68. INSERT [dbo].[tbl_department] ([DepartmentId], [Name], [GroupName]) VALUES (5, N'Purchasing', N'Inventory Management')  
  69. INSERT [dbo].[tbl_department] ([DepartmentId], [Name], [GroupName]) VALUES (6, N'Research and Development', N'Research and Development')  
  70. INSERT [dbo].[tbl_department] ([DepartmentId], [Name], [GroupName]) VALUES (7, N'Production', N'Manufacturing')  
  71. INSERT [dbo].[tbl_department] ([DepartmentId], [Name], [GroupName]) VALUES (8, N'Production Control', N'Manufacturing')  
  72. INSERT [dbo].[tbl_department] ([DepartmentId], [Name], [GroupName]) VALUES (9, N'Human Resources', N'Executive General and Administration')  
  73. INSERT [dbo].[tbl_department] ([DepartmentId], [Name], [GroupName]) VALUES (10, N'Finance', N'Executive General and Administration')  
  74. INSERT [dbo].[tbl_department] ([DepartmentId], [Name], [GroupName]) VALUES (11, N'Information Services', N'Executive General and Administration')  
  75. INSERT [dbo].[tbl_department] ([DepartmentId], [Name], [GroupName]) VALUES (12, N'Document Control', N'Quality Assurance')  
  76. INSERT [dbo].[tbl_department] ([DepartmentId], [Name], [GroupName]) VALUES (13, N'Quality Assurance', N'Quality Assurance')  
  77. INSERT [dbo].[tbl_department] ([DepartmentId], [Name], [GroupName]) VALUES (14, N'Facilities and Maintenance', N'Executive General and Administration')  
  78. INSERT [dbo].[tbl_department] ([DepartmentId], [Name], [GroupName]) VALUES (15, N'Shipping and Receiving', N'Inventory Management')  
  79. INSERT [dbo].[tbl_department] ([DepartmentId], [Name], [GroupName]) VALUES (16, N'Executive', N'Executive General and Administration')  
  80. SET IDENTITY_INSERT [dbo].[tbl_department] OFF  
  81. SET IDENTITY_INSERT [dbo].[tbl_product] ON   
  82.   
  83. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (680, N'HL Road Frame - Black, 58', N'FR-R92B-58', N'Black', 500, 1432.0000)  
  84. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (706, N'HL Road Frame - Red, 58', N'FR-R92R-58', N'Red', 500, 1432.0000)  
  85. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (707, N'Sport-100 Helmet, Red', N'HL-U509-R', N'Red', 4, 35.0000)  
  86. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (708, N'Sport-100 Helmet, Black', N'HL-U509', N'Black', 4, 35.0000)  
  87. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (709, N'Mountain Bike Socks, M', N'SO-B909-M', N'White', 4, 10.0000)  
  88. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (710, N'Mountain Bike Socks, L', N'SO-B909-L', N'White', 4, 10.0000)  
  89. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (711, N'Sport-100 Helmet, Blue', N'HL-U509-B', N'Blue', 4, 35.0000)  
  90. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (712, N'AWC Logo Cap', N'CA-1098', N'Multi', 4, 9.0000)  
  91. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (713, N'Long-Sleeve Logo Jersey, S', N'LJ-0192-S', N'Multi', 4, 50.0000)  
  92. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (714, N'Long-Sleeve Logo Jersey, M', N'LJ-0192-M', N'Multi', 4, 50.0000)  
  93. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (715, N'Long-Sleeve Logo Jersey, L', N'LJ-0192-L', N'Multi', 4, 50.0000)  
  94. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (716, N'Long-Sleeve Logo Jersey, XL', N'LJ-0192-X', N'Multi', 4, 50.0000)  
  95. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (717, N'HL Road Frame - Red, 62', N'FR-R92R-62', N'Red', 500, 1432.0000)  
  96. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (718, N'HL Road Frame - Red, 44', N'FR-R92R-44', N'Red', 500, 1432.0000)  
  97. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (719, N'HL Road Frame - Red, 48', N'FR-R92R-48', N'Red', 500, 1432.0000)  
  98. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (720, N'HL Road Frame - Red, 52', N'FR-R92R-52', N'Red', 500, 1432.0000)  
  99. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (721, N'HL Road Frame - Red, 56', N'FR-R92R-56', N'Red', 500, 1432.0000)  
  100. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (722, N'LL Road Frame - Black, 58', N'FR-R38B-58', N'Black', 500, 338.0000)  
  101. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (723, N'LL Road Frame - Black, 60', N'FR-R38B-60', N'Black', 500, 338.0000)  
  102. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (724, N'LL Road Frame - Black, 62', N'FR-R38B-62', N'Black', 500, 338.0000)  
  103. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (725, N'LL Road Frame - Red, 44', N'FR-R38R-44', N'Red', 500, 338.0000)  
  104. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (726, N'LL Road Frame - Red, 48', N'FR-R38R-48', N'Red', 500, 338.0000)  
  105. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (727, N'LL Road Frame - Red, 52', N'FR-R38R-52', N'Red', 500, 338.0000)  
  106. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (728, N'LL Road Frame - Red, 58', N'FR-R38R-58', N'Red', 500, 338.0000)  
  107. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (729, N'LL Road Frame - Red, 60', N'FR-R38R-60', N'Red', 500, 338.0000)  
  108. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (730, N'LL Road Frame - Red, 62', N'FR-R38R-62', N'Red', 500, 338.0000)  
  109. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (731, N'ML Road Frame - Red, 44', N'FR-R72R-44', N'Red', 500, 595.0000)  
  110. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (732, N'ML Road Frame - Red, 48', N'FR-R72R-48', N'Red', 500, 595.0000)  
  111. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (733, N'ML Road Frame - Red, 52', N'FR-R72R-52', N'Red', 500, 595.0000)  
  112. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (734, N'ML Road Frame - Red, 58', N'FR-R72R-58', N'Red', 500, 595.0000)  
  113. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (735, N'ML Road Frame - Red, 60', N'FR-R72R-60', N'Red', 500, 595.0000)  
  114. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (736, N'LL Road Frame - Black, 44', N'FR-R38B-44', N'Black', 500, 338.0000)  
  115. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (737, N'LL Road Frame - Black, 48', N'FR-R38B-48', N'Black', 500, 338.0000)  
  116. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (738, N'LL Road Frame - Black, 52', N'FR-R38B-52', N'Black', 500, 338.0000)  
  117. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (739, N'HL Mountain Frame - Silver, 42', N'FR-M94S-42', N'Silver', 500, 1365.0000)  
  118. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (740, N'HL Mountain Frame - Silver, 44', N'FR-M94S-44', N'Silver', 500, 1365.0000)  
  119. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (741, N'HL Mountain Frame - Silver, 48', N'FR-M94S-52', N'Silver', 500, 1365.0000)  
  120. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (742, N'HL Mountain Frame - Silver, 46', N'FR-M94S-46', N'Silver', 500, 1365.0000)  
  121. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (743, N'HL Mountain Frame - Black, 42', N'FR-M94B-42', N'Black', 500, 1350.0000)  
  122. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (744, N'HL Mountain Frame - Black, 44', N'FR-M94B-44', N'Black', 500, 1350.0000)  
  123. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (745, N'HL Mountain Frame - Black, 48', N'FR-M94B-48', N'Black', 500, 1350.0000)  
  124. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (746, N'HL Mountain Frame - Black, 46', N'FR-M94B-46', N'Black', 500, 1350.0000)  
  125. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (747, N'HL Mountain Frame - Black, 38', N'FR-M94B-38', N'Black', 500, 1350.0000)  
  126. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (748, N'HL Mountain Frame - Silver, 38', N'FR-M94S-38', N'Silver', 500, 1365.0000)  
  127. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (749, N'Road-150 Red, 62', N'BK-R93R-62', N'Red', 100, 3579.0000)  
  128. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (750, N'Road-150 Red, 44', N'BK-R93R-44', N'Red', 100, 3579.0000)  
  129. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (751, N'Road-150 Red, 48', N'BK-R93R-48', N'Red', 100, 3579.0000)  
  130. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (752, N'Road-150 Red, 52', N'BK-R93R-52', N'Red', 100, 3579.0000)  
  131. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (753, N'Road-150 Red, 56', N'BK-R93R-56', N'Red', 100, 3579.0000)  
  132. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (754, N'Road-450 Red, 58', N'BK-R68R-58', N'Red', 100, 1458.0000)  
  133. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (755, N'Road-450 Red, 60', N'BK-R68R-60', N'Red', 100, 1458.0000)  
  134. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (756, N'Road-450 Red, 44', N'BK-R68R-44', N'Red', 100, 1458.0000)  
  135. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (757, N'Road-450 Red, 48', N'BK-R68R-48', N'Red', 100, 1458.0000)  
  136. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (758, N'Road-450 Red, 52', N'BK-R68R-52', N'Red', 100, 1458.0000)  
  137. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (759, N'Road-650 Red, 58', N'BK-R50R-58', N'Red', 100, 783.0000)  
  138. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (760, N'Road-650 Red, 60', N'BK-R50R-60', N'Red', 100, 783.0000)  
  139. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (761, N'Road-650 Red, 62', N'BK-R50R-62', N'Red', 100, 783.0000)  
  140. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (762, N'Road-650 Red, 44', N'BK-R50R-44', N'Red', 100, 783.0000)  
  141. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (763, N'Road-650 Red, 48', N'BK-R50R-48', N'Red', 100, 783.0000)  
  142. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (764, N'Road-650 Red, 52', N'BK-R50R-52', N'Red', 100, 783.0000)  
  143. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (765, N'Road-650 Black, 58', N'BK-R50B-58', N'Black', 100, 783.0000)  
  144. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (766, N'Road-650 Black, 60', N'BK-R50B-60', N'Black', 100, 783.0000)  
  145. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (767, N'Road-650 Black, 62', N'BK-R50B-62', N'Black', 100, 783.0000)  
  146. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (768, N'Road-650 Black, 44', N'BK-R50B-44', N'Black', 100, 783.0000)  
  147. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (769, N'Road-650 Black, 48', N'BK-R50B-48', N'Black', 100, 783.0000)  
  148. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (770, N'Road-650 Black, 52', N'BK-R50B-52', N'Black', 100, 783.0000)  
  149. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (771, N'Mountain-100 Silver, 38', N'BK-M82S-38', N'Silver', 100, 3400.0000)  
  150. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (772, N'Mountain-100 Silver, 42', N'BK-M82S-42', N'Silver', 100, 3400.0000)  
  151. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (773, N'Mountain-100 Silver, 44', N'BK-M82S-44', N'Silver', 100, 3400.0000)  
  152. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (774, N'Mountain-100 Silver, 48', N'BK-M82S-48', N'Silver', 100, 3400.0000)  
  153. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (775, N'Mountain-100 Black, 38', N'BK-M82B-38', N'Black', 100, 3375.0000)  
  154. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (776, N'Mountain-100 Black, 42', N'BK-M82B-42', N'Black', 100, 3375.0000)  
  155. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (777, N'Mountain-100 Black, 44', N'BK-M82B-44', N'Black', 100, 3375.0000)  
  156. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (778, N'Mountain-100 Black, 48', N'BK-M82B-48', N'Black', 100, 3375.0000)  
  157. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (779, N'Mountain-200 Silver, 38', N'BK-M68S-38', N'Silver', 100, 2320.0000)  
  158. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (780, N'Mountain-200 Silver, 42', N'BK-M68S-42', N'Silver', 100, 2320.0000)  
  159. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (781, N'Mountain-200 Silver, 46', N'BK-M68S-46', N'Silver', 100, 2320.0000)  
  160. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (782, N'Mountain-200 Black, 38', N'BK-M68B-38', N'Black', 100, 2295.0000)  
  161. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (783, N'Mountain-200 Black, 42', N'BK-M68B-42', N'Black', 100, 2295.0000)  
  162. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (784, N'Mountain-200 Black, 46', N'BK-M68B-46', N'Black', 100, 2295.0000)  
  163. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (785, N'Mountain-300 Black, 38', N'BK-M47B-38', N'Black', 100, 1080.0000)  
  164. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (786, N'Mountain-300 Black, 40', N'BK-M47B-40', N'Black', 100, 1080.0000)  
  165. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (787, N'Mountain-300 Black, 44', N'BK-M47B-44', N'Black', 100, 1080.0000)  
  166. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (788, N'Mountain-300 Black, 48', N'BK-M47B-48', N'Black', 100, 1080.0000)  
  167. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (789, N'Road-250 Red, 44', N'BK-R89R-44', N'Red', 100, 2444.0000)  
  168. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (790, N'Road-250 Red, 48', N'BK-R89R-48', N'Red', 100, 2444.0000)  
  169. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (791, N'Road-250 Red, 52', N'BK-R89R-52', N'Red', 100, 2444.0000)  
  170. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (792, N'Road-250 Red, 58', N'BK-R89R-58', N'Red', 100, 2444.0000)  
  171. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (793, N'Road-250 Black, 44', N'BK-R89B-44', N'Black', 100, 2444.0000)  
  172. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (794, N'Road-250 Black, 48', N'BK-R89B-48', N'Black', 100, 2444.0000)  
  173. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (795, N'Road-250 Black, 52', N'BK-R89B-52', N'Black', 100, 2444.0000)  
  174. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (796, N'Road-250 Black, 58', N'BK-R89B-58', N'Black', 100, 2444.0000)  
  175. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (797, N'Road-550-W Yellow, 38', N'BK-R64Y-38', N'Yellow', 100, 1121.0000)  
  176. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (798, N'Road-550-W Yellow, 40', N'BK-R64Y-40', N'Yellow', 100, 1121.0000)  
  177. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (799, N'Road-550-W Yellow, 42', N'BK-R64Y-42', N'Yellow', 100, 1121.0000)  
  178. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (800, N'Road-550-W Yellow, 44', N'BK-R64Y-44', N'Yellow', 100, 1121.0000)  
  179. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (801, N'Road-550-W Yellow, 48', N'BK-R64Y-48', N'Yellow', 100, 1121.0000)  
  180. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (814, N'ML Mountain Frame - Black, 38', N'FR-M63B-38', N'Black', 500, 349.0000)  
  181. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (815, N'LL Mountain Front Wheel', N'FW-M423', N'Black', 500, 61.0000)  
  182. GO  
  183. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (816, N'ML Mountain Front Wheel', N'FW-M762', N'Black', 500, 210.0000)  
  184. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (817, N'HL Mountain Front Wheel', N'FW-M928', N'Black', 500, 301.0000)  
  185. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (818, N'LL Road Front Wheel', N'FW-R623', N'Black', 500, 86.0000)  
  186. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (819, N'ML Road Front Wheel', N'FW-R762', N'Black', 500, 249.0000)  
  187. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (820, N'HL Road Front Wheel', N'FW-R820', N'Black', 500, 331.0000)  
  188. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (821, N'Touring Front Wheel', N'FW-T905', N'Black', 500, 219.0000)  
  189. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (822, N'ML Road Frame-W - Yellow, 38', N'FR-R72Y-38', N'Yellow', 500, 595.0000)  
  190. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (823, N'LL Mountain Rear Wheel', N'RW-M423', N'Black', 500, 88.0000)  
  191. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (824, N'ML Mountain Rear Wheel', N'RW-M762', N'Black', 500, 237.0000)  
  192. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (825, N'HL Mountain Rear Wheel', N'RW-M928', N'Black', 500, 328.0000)  
  193. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (826, N'LL Road Rear Wheel', N'RW-R623', N'Black', 500, 113.0000)  
  194. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (827, N'ML Road Rear Wheel', N'RW-R762', N'Black', 500, 276.0000)  
  195. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (828, N'HL Road Rear Wheel', N'RW-R820', N'Black', 500, 358.0000)  
  196. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (829, N'Touring Rear Wheel', N'RW-T905', N'Black', 500, 246.0000)  
  197. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (830, N'ML Mountain Frame - Black, 40', N'FR-M63B-40', N'Black', 500, 349.0000)  
  198. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (831, N'ML Mountain Frame - Black, 44', N'FR-M63B-44', N'Black', 500, 349.0000)  
  199. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (832, N'ML Mountain Frame - Black, 48', N'FR-M63B-48', N'Black', 500, 349.0000)  
  200. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (833, N'ML Road Frame-W - Yellow, 40', N'FR-R72Y-40', N'Yellow', 500, 595.0000)  
  201. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (834, N'ML Road Frame-W - Yellow, 42', N'FR-R72Y-42', N'Yellow', 500, 595.0000)  
  202. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (835, N'ML Road Frame-W - Yellow, 44', N'FR-R72Y-44', N'Yellow', 500, 595.0000)  
  203. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (836, N'ML Road Frame-W - Yellow, 48', N'FR-R72Y-48', N'Yellow', 500, 595.0000)  
  204. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (837, N'HL Road Frame - Black, 62', N'FR-R92B-62', N'Black', 500, 1432.0000)  
  205. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (838, N'HL Road Frame - Black, 44', N'FR-R92B-44', N'Black', 500, 1432.0000)  
  206. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (839, N'HL Road Frame - Black, 48', N'FR-R92B-48', N'Black', 500, 1432.0000)  
  207. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (840, N'HL Road Frame - Black, 52', N'FR-R92B-52', N'Black', 500, 1432.0000)  
  208. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (841, N'Men''s Sports Shorts, S', N'SH-M897-S', N'Black', 4, 60.0000)  
  209. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (842, N'Touring-Panniers, Large', N'PA-T100', N'Grey', 4, 125.0000)  
  210. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (849, N'Men''s Sports Shorts, M', N'SH-M897-M', N'Black', 4, 60.0000)  
  211. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (850, N'Men''s Sports Shorts, L', N'SH-M897-L', N'Black', 4, 60.0000)  
  212. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (851, N'Men''s Sports Shorts, XL', N'SH-M897-X', N'Black', 4, 60.0000)  
  213. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (852, N'Women''s Tights, S', N'TG-W091-S', N'Black', 4, 75.0000)  
  214. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (853, N'Women''s Tights, M', N'TG-W091-M', N'Black', 4, 75.0000)  
  215. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (854, N'Women''s Tights, L', N'TG-W091-L', N'Black', 4, 75.0000)  
  216. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (855, N'Men''s Bib-Shorts, S', N'SB-M891-S', N'Multi', 4, 90.0000)  
  217. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (856, N'Men''s Bib-Shorts, M', N'SB-M891-M', N'Multi', 4, 90.0000)  
  218. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (857, N'Men''s Bib-Shorts, L', N'SB-M891-L', N'Multi', 4, 90.0000)  
  219. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (858, N'Half-Finger Gloves, S', N'GL-H102-S', N'Black', 4, 25.0000)  
  220. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (859, N'Half-Finger Gloves, M', N'GL-H102-M', N'Black', 4, 25.0000)  
  221. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (860, N'Half-Finger Gloves, L', N'GL-H102-L', N'Black', 4, 25.0000)  
  222. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (861, N'Full-Finger Gloves, S', N'GL-F110-S', N'Black', 4, 38.0000)  
  223. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (862, N'Full-Finger Gloves, M', N'GL-F110-M', N'Black', 4, 38.0000)  
  224. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (863, N'Full-Finger Gloves, L', N'GL-F110-L', N'Black', 4, 38.0000)  
  225. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (864, N'Classic Vest, S', N'VE-C304-S', N'Blue', 4, 64.0000)  
  226. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (865, N'Classic Vest, M', N'VE-C304-M', N'Blue', 4, 64.0000)  
  227. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (866, N'Classic Vest, L', N'VE-C304-L', N'Blue', 4, 64.0000)  
  228. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (867, N'Women''s Mountain Shorts, S', N'SH-W890-S', N'Black', 4, 70.0000)  
  229. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (868, N'Women''s Mountain Shorts, M', N'SH-W890-M', N'Black', 4, 70.0000)  
  230. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (869, N'Women''s Mountain Shorts, L', N'SH-W890-L', N'Black', 4, 70.0000)  
  231. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (874, N'Racing Socks, M', N'SO-R809-M', N'White', 4, 9.0000)  
  232. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (875, N'Racing Socks, L', N'SO-R809-L', N'White', 4, 9.0000)  
  233. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (880, N'Hydration Pack - 70 oz.', N'HY-1023-70', N'Silver', 4, 55.0000)  
  234. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (881, N'Short-Sleeve Classic Jersey, S', N'SJ-0194-S', N'Yellow', 4, 54.0000)  
  235. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (882, N'Short-Sleeve Classic Jersey, M', N'SJ-0194-M', N'Yellow', 4, 54.0000)  
  236. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (883, N'Short-Sleeve Classic Jersey, L', N'SJ-0194-L', N'Yellow', 4, 54.0000)  
  237. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (884, N'Short-Sleeve Classic Jersey, XL', N'SJ-0194-X', N'Yellow', 4, 54.0000)  
  238. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (885, N'HL Touring Frame - Yellow, 60', N'FR-T98Y-60', N'Yellow', 500, 1004.0000)  
  239. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (886, N'LL Touring Frame - Yellow, 62', N'FR-T67Y-62', N'Yellow', 500, 334.0000)  
  240. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (887, N'HL Touring Frame - Yellow, 46', N'FR-T98Y-46', N'Yellow', 500, 1004.0000)  
  241. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (888, N'HL Touring Frame - Yellow, 50', N'FR-T98Y-50', N'Yellow', 500, 1004.0000)  
  242. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (889, N'HL Touring Frame - Yellow, 54', N'FR-T98Y-54', N'Yellow', 500, 1004.0000)  
  243. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (890, N'HL Touring Frame - Blue, 46', N'FR-T98U-46', N'Blue', 500, 1004.0000)  
  244. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (891, N'HL Touring Frame - Blue, 50', N'FR-T98U-50', N'Blue', 500, 1004.0000)  
  245. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (892, N'HL Touring Frame - Blue, 54', N'FR-T98U-54', N'Blue', 500, 1004.0000)  
  246. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (893, N'HL Touring Frame - Blue, 60', N'FR-T98U-60', N'Blue', 500, 1004.0000)  
  247. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (894, N'Rear Derailleur', N'RD-2308', N'Silver', 500, 122.0000)  
  248. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (895, N'LL Touring Frame - Blue, 50', N'FR-T67U-50', N'Blue', 500, 334.0000)  
  249. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (896, N'LL Touring Frame - Blue, 54', N'FR-T67U-54', N'Blue', 500, 334.0000)  
  250. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (897, N'LL Touring Frame - Blue, 58', N'FR-T67U-58', N'Blue', 500, 334.0000)  
  251. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (898, N'LL Touring Frame - Blue, 62', N'FR-T67U-62', N'Blue', 500, 334.0000)  
  252. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (899, N'LL Touring Frame - Yellow, 44', N'FR-T67Y-44', N'Yellow', 500, 334.0000)  
  253. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (900, N'LL Touring Frame - Yellow, 50', N'FR-T67Y-50', N'Yellow', 500, 334.0000)  
  254. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (901, N'LL Touring Frame - Yellow, 54', N'FR-T67Y-54', N'Yellow', 500, 334.0000)  
  255. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (902, N'LL Touring Frame - Yellow, 58', N'FR-T67Y-58', N'Yellow', 500, 334.0000)  
  256. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (903, N'LL Touring Frame - Blue, 44', N'FR-T67U-44', N'Blue', 500, 334.0000)  
  257. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (904, N'ML Mountain Frame-W - Silver, 40', N'FR-M63S-40', N'Silver', 500, 365.0000)  
  258. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (905, N'ML Mountain Frame-W - Silver, 42', N'FR-M63S-42', N'Silver', 500, 365.0000)  
  259. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (906, N'ML Mountain Frame-W - Silver, 46', N'FR-M63S-46', N'Silver', 500, 365.0000)  
  260. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (907, N'Rear Brakes', N'RB-9231', N'Silver', 500, 107.0000)  
  261. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (917, N'LL Mountain Frame - Silver, 42', N'FR-M21S-42', N'Silver', 500, 265.0000)  
  262. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (918, N'LL Mountain Frame - Silver, 44', N'FR-M21S-44', N'Silver', 500, 265.0000)  
  263. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (919, N'LL Mountain Frame - Silver, 48', N'FR-M21S-48', N'Silver', 500, 265.0000)  
  264. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (920, N'LL Mountain Frame - Silver, 52', N'FR-M21S-52', N'Silver', 500, 265.0000)  
  265. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (924, N'LL Mountain Frame - Black, 42', N'FR-M21B-42', N'Black', 500, 250.0000)  
  266. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (925, N'LL Mountain Frame - Black, 44', N'FR-M21B-44', N'Black', 500, 250.0000)  
  267. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (926, N'LL Mountain Frame - Black, 48', N'FR-M21B-48', N'Black', 500, 250.0000)  
  268. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (927, N'LL Mountain Frame - Black, 52', N'FR-M21B-52', N'Black', 500, 250.0000)  
  269. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (935, N'LL Mountain Pedal', N'PD-M282', N'Silver/Black', 500, 41.0000)  
  270. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (936, N'ML Mountain Pedal', N'PD-M340', N'Silver/Black', 500, 63.0000)  
  271. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (937, N'HL Mountain Pedal', N'PD-M562', N'Silver/Black', 500, 81.0000)  
  272. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (938, N'LL Road Pedal', N'PD-R347', N'Silver/Black', 500, 41.0000)  
  273. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (939, N'ML Road Pedal', N'PD-R563', N'Silver/Black', 500, 63.0000)  
  274. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (940, N'HL Road Pedal', N'PD-R853', N'Silver/Black', 500, 81.0000)  
  275. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (941, N'Touring Pedal', N'PD-T852', N'Silver/Black', 500, 81.0000)  
  276. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (942, N'ML Mountain Frame-W - Silver, 38', N'FR-M63S-38', N'Silver', 500, 365.0000)  
  277. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (943, N'LL Mountain Frame - Black, 40', N'FR-M21B-40', N'Black', 500, 250.0000)  
  278. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (944, N'LL Mountain Frame - Silver, 40', N'FR-M21S-40', N'Silver', 500, 265.0000)  
  279. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (945, N'Front Derailleur', N'FD-2342', N'Silver', 500, 92.0000)  
  280. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (948, N'Front Brakes', N'FB-9873', N'Silver', 500, 107.0000)  
  281. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (949, N'LL Crankset', N'CS-4759', N'Black', 500, 176.0000)  
  282. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (950, N'ML Crankset', N'CS-6583', N'Black', 500, 257.0000)  
  283. GO  
  284. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (951, N'HL Crankset', N'CS-9183', N'Black', 500, 405.0000)  
  285. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (952, N'Chain', N'CH-0234', N'Silver', 500, 21.0000)  
  286. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (953, N'Touring-2000 Blue, 60', N'BK-T44U-60', N'Blue', 100, 1215.0000)  
  287. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (954, N'Touring-1000 Yellow, 46', N'BK-T79Y-46', N'Yellow', 100, 2385.0000)  
  288. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (955, N'Touring-1000 Yellow, 50', N'BK-T79Y-50', N'Yellow', 100, 2385.0000)  
  289. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (956, N'Touring-1000 Yellow, 54', N'BK-T79Y-54', N'Yellow', 100, 2385.0000)  
  290. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (957, N'Touring-1000 Yellow, 60', N'BK-T79Y-60', N'Yellow', 100, 2385.0000)  
  291. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (958, N'Touring-3000 Blue, 54', N'BK-T18U-54', N'Blue', 100, 743.0000)  
  292. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (959, N'Touring-3000 Blue, 58', N'BK-T18U-58', N'Blue', 100, 743.0000)  
  293. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (960, N'Touring-3000 Blue, 62', N'BK-T18U-62', N'Blue', 100, 743.0000)  
  294. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (961, N'Touring-3000 Yellow, 44', N'BK-T18Y-44', N'Yellow', 100, 743.0000)  
  295. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (962, N'Touring-3000 Yellow, 50', N'BK-T18Y-50', N'Yellow', 100, 743.0000)  
  296. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (963, N'Touring-3000 Yellow, 54', N'BK-T18Y-54', N'Yellow', 100, 743.0000)  
  297. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (964, N'Touring-3000 Yellow, 58', N'BK-T18Y-58', N'Yellow', 100, 743.0000)  
  298. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (965, N'Touring-3000 Yellow, 62', N'BK-T18Y-62', N'Yellow', 100, 743.0000)  
  299. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (966, N'Touring-1000 Blue, 46', N'BK-T79U-46', N'Blue', 100, 2385.0000)  
  300. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (967, N'Touring-1000 Blue, 50', N'BK-T79U-50', N'Blue', 100, 2385.0000)  
  301. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (968, N'Touring-1000 Blue, 54', N'BK-T79U-54', N'Blue', 100, 2385.0000)  
  302. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (969, N'Touring-1000 Blue, 60', N'BK-T79U-60', N'Blue', 100, 2385.0000)  
  303. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (970, N'Touring-2000 Blue, 46', N'BK-T44U-46', N'Blue', 100, 1215.0000)  
  304. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (971, N'Touring-2000 Blue, 50', N'BK-T44U-50', N'Blue', 100, 1215.0000)  
  305. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (972, N'Touring-2000 Blue, 54', N'BK-T44U-54', N'Blue', 100, 1215.0000)  
  306. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (973, N'Road-350-W Yellow, 40', N'BK-R79Y-40', N'Yellow', 100, 1701.0000)  
  307. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (974, N'Road-350-W Yellow, 42', N'BK-R79Y-42', N'Yellow', 100, 1701.0000)  
  308. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (975, N'Road-350-W Yellow, 44', N'BK-R79Y-44', N'Yellow', 100, 1701.0000)  
  309. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (976, N'Road-350-W Yellow, 48', N'BK-R79Y-48', N'Yellow', 100, 1701.0000)  
  310. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (977, N'Road-750 Black, 58', N'BK-R19B-58', N'Black', 100, 540.0000)  
  311. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (978, N'Touring-3000 Blue, 44', N'BK-T18U-44', N'Blue', 100, 743.0000)  
  312. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (979, N'Touring-3000 Blue, 50', N'BK-T18U-50', N'Blue', 100, 743.0000)  
  313. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (980, N'Mountain-400-W Silver, 38', N'BK-M38S-38', N'Silver', 100, 770.0000)  
  314. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (981, N'Mountain-400-W Silver, 40', N'BK-M38S-40', N'Silver', 100, 770.0000)  
  315. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (982, N'Mountain-400-W Silver, 42', N'BK-M38S-42', N'Silver', 100, 770.0000)  
  316. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (983, N'Mountain-400-W Silver, 46', N'BK-M38S-46', N'Silver', 100, 770.0000)  
  317. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (984, N'Mountain-500 Silver, 40', N'BK-M18S-40', N'Silver', 100, 565.0000)  
  318. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (985, N'Mountain-500 Silver, 42', N'BK-M18S-42', N'Silver', 100, 565.0000)  
  319. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (986, N'Mountain-500 Silver, 44', N'BK-M18S-44', N'Silver', 100, 565.0000)  
  320. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (987, N'Mountain-500 Silver, 48', N'BK-M18S-48', N'Silver', 100, 565.0000)  
  321. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (988, N'Mountain-500 Silver, 52', N'BK-M18S-52', N'Silver', 100, 565.0000)  
  322. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (989, N'Mountain-500 Black, 40', N'BK-M18B-40', N'Black', 100, 540.0000)  
  323. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (990, N'Mountain-500 Black, 42', N'BK-M18B-42', N'Black', 100, 540.0000)  
  324. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (991, N'Mountain-500 Black, 44', N'BK-M18B-44', N'Black', 100, 540.0000)  
  325. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (992, N'Mountain-500 Black, 48', N'BK-M18B-48', N'Black', 100, 540.0000)  
  326. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (993, N'Mountain-500 Black, 52', N'BK-M18B-52', N'Black', 100, 540.0000)  
  327. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (997, N'Road-750 Black, 44', N'BK-R19B-44', N'Black', 100, 540.0000)  
  328. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (998, N'Road-750 Black, 48', N'BK-R19B-48', N'Black', 100, 540.0000)  
  329. INSERT [dbo].[tbl_product] ([ProductID], [Name], [ProductNumber], [Color], [Quantity], [Price]) VALUES (999, N'Road-750 Black, 52', N'BK-R19B-52', N'Black', 100, 540.0000)  
  330. SET IDENTITY_INSERT [dbo].[tbl_product] OFF  
  331. SET IDENTITY_INSERT [dbo].[tbl_vendor] ON   
  332.   
  333. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1492, N'Australia Bike Retailer')  
  334. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1494, N'Allenson Cycles')  
  335. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1496, N'Advanced Bicycles')  
  336. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1498, N'Trikes, Inc.')  
  337. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1500, N'Morgan Bike Accessories')  
  338. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1502, N'Cycling Master')  
  339. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1504, N'Chicago Rent-All')  
  340. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1506, N'Greenwood Athletic Company')  
  341. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1508, N'Compete Enterprises, Inc')  
  342. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1510, N'International')  
  343. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1512, N'Light Speed')  
  344. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1514, N'Training Systems')  
  345. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1516, N'Gardner Touring Cycles')  
  346. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1518, N'International Trek Center')  
  347. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1520, N'G & K Bicycle Corp.')  
  348. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1522, N'First National Sport Co.')  
  349. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1524, N'Recreation Place')  
  350. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1526, N'International Bicycles')  
  351. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1528, N'Image Makers Bike Center')  
  352. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1530, N'Comfort Road Bicycles')  
  353. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1532, N'Knopfler Cycles')  
  354. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1534, N'Ready Rentals')  
  355. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1536, N'Cruger Bike Company')  
  356. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1538, N'Vista Road Bikes')  
  357. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1540, N'Bergeron Off-Roads')  
  358. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1542, N'Hill''s Bicycle Service')  
  359. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1544, N'Circuit Cycles')  
  360. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1546, N'Green Lake Bike Company')  
  361. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1548, N'Consumer Cycles')  
  362. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1550, N'Merit Bikes')  
  363. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1552, N'Sports House')  
  364. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1554, N'WestAmerica Bicycle Co.')  
  365. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1556, N'West Junction Cycles')  
  366. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1558, N'Marsh')  
  367. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1560, N'Capital Road Cycles')  
  368. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1562, N'Norstan Bike Hut')  
  369. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1564, N'Illinois Trek & Clothing')  
  370. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1566, N'Burnett Road Warriors')  
  371. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1568, N'Custom Frames, Inc.')  
  372. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1570, N'First Rate Bicycles')  
  373. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1572, N'National Bike Association')  
  374. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1574, N'Jeff''s Sporting Goods')  
  375. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1576, N'Superior Bicycles')  
  376. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1578, N'Vision Cycles, Inc.')  
  377. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1580, N'Litware, Inc.')  
  378. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1582, N'Inner City Bikes')  
  379. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1584, N'Trey Research')  
  380. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1586, N'Mitchell Sports')  
  381. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1588, N'Signature Cycles')  
  382. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1590, N'SUPERSALES INC.')  
  383. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1592, N'Lindell')  
  384. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1594, N'Fitness Association')  
  385. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1596, N'A. Datum Corporation')  
  386. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1598, N'Continental Pro Cycles')  
  387. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1600, N'Federal Sport')  
  388. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1602, N'Beaumont Bikes')  
  389. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1604, N'Bike Satellite Inc.')  
  390. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1606, N'Northwind Traders')  
  391. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1608, N'Sport Playground')  
  392. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1610, N'Hybrid Bicycle Center')  
  393. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1612, N'Midwest Sport, Inc.')  
  394. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1614, N'Reliance Fitness, Inc.')  
  395. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1616, N'Aurora Bike Center')  
  396. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1618, N'Metro Sport Equipment')  
  397. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1620, N'Lakewood Bicycle')  
  398. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1622, N'Speed Corporation')  
  399. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1624, N'Competition Bike Training Systems')  
  400. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1626, N'Hill Bicycle Center')  
  401. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1628, N'Bicycle Specialists')  
  402. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1630, N'Indiana Bicycle Center')  
  403. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1632, N'Sport Fan Co.')  
  404. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1634, N'GMA Ski & Bike')  
  405. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1636, N'Integrated Sport Products')  
  406. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1638, N'Inline Accessories')  
  407. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1640, N'Legend Cycles')  
  408. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1642, N'Electronic Bike Co.')  
  409. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1644, N'International Sport Assoc.')  
  410. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1646, N'Electronic Bike Repair & Supplies')  
  411. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1648, N'Wide World Importers')  
  412. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1650, N'American Bicycles and Wheels')  
  413. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1652, N'Victory Bikes')  
  414. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1654, N'American Bikes')  
  415. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1656, N'Mountain Works')  
  416. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1658, N'Crowley Sport')  
  417. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1660, N'Magic Cycles')  
  418. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1662, N'Northern Bike Travel')  
  419. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1664, N'Anderson''s Custom Bikes')  
  420. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1666, N'Leaf River Terrain')  
  421. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1668, N'Touring Equipment Center')  
  422. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1670, N'Holiday Skate & Cycle')  
  423. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1672, N'Expert Bike Co')  
  424. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1674, N'Varsity Sport Co.')  
  425. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1676, N'Team Athletic Co.')  
  426. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1678, N'Proseware, Inc.')  
  427. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1680, N'Jackson Authority')  
  428. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1682, N'Premier Sport, Inc.')  
  429. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1684, N'Professional Athletic Consultants')  
  430. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1686, N'Pro Sport Industries')  
  431. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1688, N'Wood Fitness')  
  432. GO  
  433. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1690, N'Bloomington Multisport')  
  434. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1692, N'Carlson Specialties')  
  435. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1694, N'Compete, Inc.')  
  436. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1696, N'Chicago City Saddles')  
  437. INSERT [dbo].[tbl_vendor] ([VendorId], [Name]) VALUES (1698, N'Business Equipment Center')  
  438. SET IDENTITY_INSERT [dbo].[tbl_vendor] OFF 

In the above script, I have created three simple tables i.e. department, product and vendor with existing data..

Step 2

Now, create a new .NET Core web application project and name it "CoreEfDbQuery" as shown below.

ASP.NET Core - Entity Framework Query Through Database

ASP.NET Core - Entity Framework Query Through Database

Step 3

Build the solution and ensure that the build is successful. Then, restart Visual Studio.

Step 4

Now, in order to import existing database context object using Entity Framework to my core web application, I need to install the following library packages via "Tools->NuGet Package Manager->Manage NuGet Packages for Solution" in the below-mentioned order.

ASP.NET Core - Entity Framework Query Through Database

  1. Microsoft.EntityFrameworkCore.SqlServer
  2. Microsoft.EntityFrameworkCore.Tools
  3. Microsoft.EntityFrameworkCore.SqlServer.Design

ASP.NET Core - Entity Framework Query Through Database

ASP.NET Core - Entity Framework Query Through Database

ASP.NET Core - Entity Framework Query Through Database

Step 5

Click "Tools->NuGet Package Manager->Package Manager Console" as shown below.

ASP.NET Core - Entity Framework Query Through Database

ASP.NET Core - Entity Framework Query Through Database

Step 6

Type the following command inside the console as shown below. Do not forget to update your SQL server connection string configuration in this command.

  1. Scaffold-DbContext "Server=SQL SERVER (e.g localhost);Database=DATABASE (e.g db_corelogin);Trusted_Connection=True;user id=SQL USERNAME;password=SQL PASSWORD;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models/DB 

ASP.NET Core - Entity Framework Query Through Database

The above command will create the following folders and files.

ASP.NET Core - Entity Framework Query Through Database

Remember that when we use the database first approach in ASP.NET MVC framework, we have a cool graphical designer UI through which we select the tables, stored procedures, and other database objects to be imported into the web application via Entity Framework. The database context file also gets imported through which we communicate to the SQL database engine. In .NET Core, however, there is no cool graphical user interface to import the SQL database context, we have to import the database context via the above command and then inside the created .cs database context file, we need to write appropriate business logic methods to access SQL database tables, stored procedures, or queries to access the data. The scaffold command creates all our tables class objects i.e. "TblDepartment.cs", "TblProduct.cs" and "TblVendor.cs".

Step 7

Now, create "Models\DB\DepartmentViewModel.cs", "Models\DB\ProductViewModel.cs" and "Models\DB\VendorViewModel.cs" files and replace the following code in these files.

  1. DepartmentViewModel.cs

    1. //-----------------------------------------------------------------------  
    2. // <copyright file="DepartmentViewModel.cs" company="None">  
    3. //     Copyright (c) Allow to distribute this code and utilize this code for personal or commercial purpose.  
    4. // </copyright>  
    5. // <author>Asma Khalid</author>  
    6. //-----------------------------------------------------------------------  
    7.   
    8. namespace CoreEfDbQuery.Models  
    9. {  
    10.     using System.Collections.Generic;  
    11.     using System.ComponentModel.DataAnnotations;  
    12.     using CoreEfDbQuery.Models;  
    13.     using CoreEfDbQuery.Models.DB;  
    14.   
    15.     /// <summary>  
    16.     /// Department view model class.  
    17.     /// </summary>  
    18.     public class DepartmentViewModel  
    19.     {  
    20.         #region Properties  
    21.   
    22.         /// <summary>  
    23.         /// Gets or sets to departments list property.  
    24.         /// </summary>  
    25.         [Display(Name = "Departments")]  
    26.         public List<TblDepartment> Departments = new List<TblDepartment>();  
    27.   
    28.         /// <summary>  
    29.         /// Gets or sets to departments name property.  
    30.         /// </summary>  
    31.         [Required]  
    32.         [Display(Name = "Department Name")]  
    33.         public string Name { getset; }  
    34.   
    35.         /// <summary>  
    36.         /// Gets or sets to departments group name property.  
    37.         /// </summary>  
    38.         [Required]  
    39.         [Display(Name = "Department Group Name")]  
    40.         public string GroupName { getset; }  
    41.  
    42.         #endregion  
    43.     }  

  2. ProductViewModel.cs

    1. //-----------------------------------------------------------------------  
    2. // <copyright file="ProductViewModel.cs" company="None">  
    3. //     Copyright (c) Allow to distribute this code and utilize this code for personal or commercial purpose.  
    4. // </copyright>  
    5. // <author>Asma Khalid</author>  
    6. //-----------------------------------------------------------------------  
    7.   
    8. namespace CoreEfDbQuery.Models  
    9. {  
    10.     using System.Collections.Generic;  
    11.     using System.ComponentModel.DataAnnotations;  
    12.     using CoreEfDbQuery.Models;  
    13.     using CoreEfDbQuery.Models.DB;  
    14.   
    15.     /// <summary>  
    16.     /// Product view model class.  
    17.     /// </summary>  
    18.     public class ProductViewModel  
    19.     {  
    20.         #region Properties  
    21.   
    22.         /// <summary>  
    23.         /// Gets or sets to products list property.  
    24.         /// </summary>  
    25.         [Display(Name = "Products")]  
    26.         public List<TblProduct> Products = new List<TblProduct>();  
    27.  
    28.         #endregion  
    29.     }  

  3. VendorViewModel.cs

    1. //-----------------------------------------------------------------------  
    2. // <copyright file="VendorViewModel.cs" company="None">  
    3. //     Copyright (c) Allow to distribute this code and utilize this code for personal or commercial purpose.  
    4. // </copyright>  
    5. // <author>Asma Khalid</author>  
    6. //-----------------------------------------------------------------------  
    7.   
    8. namespace CoreEfDbQuery.Models  
    9. {  
    10.     using System.Collections.Generic;  
    11.     using System.ComponentModel.DataAnnotations;  
    12.     using CoreEfDbQuery.Models;  
    13.     using CoreEfDbQuery.Models.DB;  
    14.   
    15.     /// <summary>  
    16.     /// Vendor view model class.  
    17.     /// </summary>  
    18.     public class VendorViewModel  
    19.     {  
    20.         #region Properties  
    21.   
    22.         /// <summary>  
    23.         /// Gets or sets to vendors list property.  
    24.         /// </summary>  
    25.         [Display(Name = "Vendors")]  
    26.         public List<TblVendor> Vendors = new List<TblVendor>();  
    27.  
    28.         #endregion  
    29.     }  

The above classes are simple ViewModel object classes which I have created to interact with the user and to display data on the web application.

Step 8

Now, open "Models\DB\db_core_ef_firstContext.cs"file and replace the following code in it.

  1. using System;  
  2. using Microsoft.EntityFrameworkCore;  
  3. using Microsoft.EntityFrameworkCore.Metadata;  
  4.   
  5. namespace CoreEfDbQuery.Models.DB  
  6. {  
  7.     public partial class db_core_ef_firstContext : DbContext  
  8.     {  
  9.         public db_core_ef_firstContext()  
  10.         {  
  11.         }  
  12.   
  13.         public db_core_ef_firstContext(DbContextOptions<db_core_ef_firstContext> options)  
  14.             : base(options)  
  15.         {  
  16.         }  
  17.   
  18.         public virtual DbSet<TblDepartment> TblDepartment { getset; }  
  19.         public virtual DbSet<TblProduct> TblProduct { getset; }  
  20.         public virtual DbSet<TblVendor> TblVendor { getset; }  
  21.   
  22.         ////protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)  
  23.         ////{  
  24.         ////    if (!optionsBuilder.IsConfigured)  
  25.         ////    {  
  26.         ////        optionsBuilder.UseSqlServer("Server=SQL SERVER;Database=DATABASE;Trusted_Connection=True;user id=SQL USERNAME;password=SQL PASSWORD;");  
  27.         ////    }  
  28.         ////}  
  29.   
  30.         protected override void OnModelCreating(ModelBuilder modelBuilder)  
  31.         {  
  32.             modelBuilder.Entity<TblDepartment>(entity =>  
  33.             {  
  34.                 entity.HasKey(e => e.DepartmentId);  
  35.   
  36.                 entity.ToTable("tbl_department");  
  37.   
  38.                 entity.Property(e => e.GroupName).IsRequired();  
  39.   
  40.                 entity.Property(e => e.Name).IsRequired();  
  41.             });  
  42.   
  43.             modelBuilder.Entity<TblProduct>(entity =>  
  44.             {  
  45.                 entity.HasKey(e => e.ProductId);  
  46.   
  47.                 entity.ToTable("tbl_product");  
  48.   
  49.                 entity.Property(e => e.ProductId).HasColumnName("ProductID");  
  50.   
  51.                 entity.Property(e => e.Color).IsRequired();  
  52.   
  53.                 entity.Property(e => e.Name).IsRequired();  
  54.   
  55.                 entity.Property(e => e.Price).HasColumnType("money");  
  56.   
  57.                 entity.Property(e => e.ProductNumber).IsRequired();  
  58.             });  
  59.   
  60.             modelBuilder.Entity<TblVendor>(entity =>  
  61.             {  
  62.                 entity.HasKey(e => e.VendorId);  
  63.   
  64.                 entity.ToTable("tbl_vendor");  
  65.   
  66.                 entity.Property(e => e.Name).IsRequired();  
  67.             });  
  68.         }  
  69.     }  

The only change in the above code is either removal or commented out code for "OnConfiguring(...)" method; all other code is auto-generated by the scaffold command. Ensure that your database context file above must also have overload constructor as shown below.

  1. public db_core_ef_firstContext(DbContextOptions<db_core_ef_firstContext> options)  
  2.     : base(options)  
  3. {  

In order to access the data objects from SQL database via custom queries, stored procedures, or direct query from tables, you need to register your target custom objects with the model builder inside your "OnModelCreating(...)" method of "db_core_ef_firstContext" database context class. The database tables entities are already registered with the model builder via auto-generated scaffold command as shown below. Therefore, you can directly read the SQL database tables through Entity Framework auto-generated tables object classes.

  1. protected override void OnModelCreating(ModelBuilder modelBuilder)  
  2.  {  
  3.      modelBuilder.Entity<TblDepartment>(entity =>  
  4.      {  
  5.          entity.HasKey(e => e.DepartmentId);  
  6.   
  7.          entity.ToTable("tbl_department");  
  8.   
  9.          entity.Property(e => e.GroupName).IsRequired();  
  10.   
  11.          entity.Property(e => e.Name).IsRequired();  
  12.      });  
  13.   
  14.      modelBuilder.Entity<TblProduct>(entity =>  
  15.      {  
  16.          entity.HasKey(e => e.ProductId);  
  17.   
  18.          entity.ToTable("tbl_product");  
  19.   
  20.          entity.Property(e => e.ProductId).HasColumnName("ProductID");  
  21.   
  22.          entity.Property(e => e.Color).IsRequired();  
  23.   
  24.          entity.Property(e => e.Name).IsRequired();  
  25.   
  26.          entity.Property(e => e.Price).HasColumnType("money");  
  27.   
  28.          entity.Property(e => e.ProductNumber).IsRequired();  
  29.      });  
  30.   
  31.      modelBuilder.Entity<TblVendor>(entity =>  
  32.      {  
  33.          entity.HasKey(e => e.VendorId);  
  34.   
  35.          entity.ToTable("tbl_vendor");  
  36.   
  37.          entity.Property(e => e.Name).IsRequired();  
  38.      });  
  39.  } 

Step 9

In order to access the SQL server database, I need to store my database connection string in "appsettings.json" file which is the recommended way. So, open "appsettings.json" file and replace the following code in it.

  1. {  
  2.   "ConnectionStrings": {  
  3.     "db_core_ef_first""Server=SQL SERVER;Database=DATABASE;Trusted_Connection=True;user id=SQL USERNAME;password=SQL PASSWORD;"  
  4.   },  
  5.   "Logging": {  
  6.     "IncludeScopes"false,  
  7.     "LogLevel": {  
  8.       "Default""Warning"  
  9.     }  
  10.   }  

Do not forget to update your SQL server configuration in the above connection string.

Step 10

Now, I need to register my database context as .NET Microservices with the .NET Core Framework in order to access my database within my application. To do so, open the "Startup.cs" file and add the following line of code at the end of "ConfigureServices(...)" method.

  1. // [Asma Khalid]: Register SQL database configuration context as services.    
  2. services.AddDbContext<db_core_ef_firstContext>(options => options.UseSqlServer(Configuration.GetConnectionString("db_core_ef_first"))); 

I have now registered my database context as .NET Microservices with the .NET Core framework using my SQL Server connection string configuration. So, now I can easily access my database context object using Dependency Injection design pattern. Just for your knowledge, dependency injection design pattern enables the access to the target global object via overload constructor parameter of the class that requires the access. When I register my database context as the above line of code, the framework will automatically instantiate my database context object at the global level and when my any target class requires access to the database context object, then that class needs to utilize "db_core_ef_firstContext" database context object as a parameter of its overload constructor. That's the beauty of dependency injection design pattern.

Step 11

Do a little cleanup of your folder hierarchy.

  1. Except "Pages\_ViewImports.cshtml" file, "Pages\_ViewStart.cshtml" file, "Pages\Error.cshtml" file and Shared folder, remove all other files inside "Pages" folder.

Step 12

Open, "Pages\Shared\_Layout.cshtml" file and replace the following code in it.

  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4.     <meta charset="utf-8" />  
  5.     <meta name="viewport" content="width=device-width, initial-scale=1.0" />  
  6.     <title>@ViewBag.Title</title>  
  7.   
  8.     <environment include="Development">  
  9.         <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />  
  10.         <link rel="stylesheet" href="~/css/site.css" />  
  11.     </environment>  
  12.     <environment exclude="Development">  
  13.         <link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/css/bootstrap.min.css"  
  14.               asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css"  
  15.               asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute" />  
  16.         <link rel="stylesheet" href="~/css/site.min.css" asp-append-version="true" />  
  17.     </environment>  
  18. </head>  
  19. <body>  
  20.     <nav class="navbar navbar-inverse navbar-fixed-top">  
  21.         <div class="container">  
  22.             <div class="navbar-header">  
  23.                 <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">  
  24.                     <span class="sr-only">Toggle navigation</span>  
  25.                     <span class="icon-bar"></span>  
  26.                     <span class="icon-bar"></span>  
  27.                     <span class="icon-bar"></span>  
  28.                 </button>  
  29.   
  30.             </div>  
  31.             <div class="navbar-collapse collapse">  
  32.                 <ul class="nav navbar-nav">  
  33.                     <li><a asp-page="/Index">Departments</a></li>  
  34.                     <li><a asp-page="/ProductPage">Products</a></li>  
  35.                     <li><a asp-page="/VendorPage">Vendors</a></li>  
  36.                 </ul>  
  37.             </div>  
  38.         </div>  
  39.     </nav>  
  40.   
  41.     <div class="container body-content">  
  42.         @RenderBody()  
  43.         <hr />  
  44.         <footer>  
  45.             <center>  
  46.                 <p><strong>Copyright © @DateTime.Now.Year - <a href="http://wwww.asmak9.com/">Asma's Blog</a>.</strong> All rights reserved.</p>  
  47.             </center>  
  48.         </footer>  
  49.     </div>  
  50.   
  51.     <environment include="Development">  
  52.         <script src="~/lib/jquery/dist/jquery.js"></script>  
  53.         <script src="~/lib/bootstrap/dist/js/bootstrap.js"></script>  
  54.         <script src="~/js/site.js" asp-append-version="true"></script>  
  55.     </environment>  
  56.     <environment exclude="Development">  
  57.         <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-3.3.1.min.js"  
  58.                 asp-fallback-src="~/lib/jquery/dist/jquery.min.js"  
  59.                 asp-fallback-test="window.jQuery"  
  60.                 crossorigin="anonymous"  
  61.                 integrity="sha384-tsQFqpEReu7ZLhBV2VZlAu7zcOV+rXbYlF2cqB8txI/8aZajjp4Bqd+V6D5IgvKT">  
  62.         </script>  
  63.         <script src="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/bootstrap.min.js"  
  64.                 asp-fallback-src="~/lib/bootstrap/dist/js/bootstrap.min.js"  
  65.                 asp-fallback-test="window.jQuery && window.jQuery.fn && window.jQuery.fn.modal"  
  66.                 crossorigin="anonymous"  
  67.                 integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa">  
  68.         </script>  
  69.         <script src="~/js/site.min.js" asp-append-version="true"></script>  
  70.     </environment>  
  71.   
  72.     @RenderSection("Scripts", required: false)  
  73. </body>  
  74. </html> 

In the above code, I have created a basic layout page of my web application.

Step 13

Now, create "Pages\Index.cshtml" file with model and replace the following code in it.

  1. @page  
  2. @model IndexModel  
  3. @{  
  4.     ViewBag.Title = "ASP.NET Core - Entity Framework Query through DB";  
  5. }  
  6.   
  7. <div class="row">  
  8.     <div class="col-md-offset-2 col-md-12">  
  9.         <h2>ASP.NET Core - Entity Framework Query through DB</h2>  
  10.     </div>  
  11. </div>  
  12.   
  13. <hr />  
  14.   
  15. <div class="row">  
  16.     <div class="col-md-8">  
  17.         <section>  
  18.             <form method="post" role="form" class="form-horizontal">  
  19.                 @Html.AntiForgeryToken()  
  20.   
  21.                 <h4>Add new department.</h4>  
  22.                 <hr />  
  23.   
  24.                 @Html.ValidationSummary(true, "", new { @class = "text-danger" })  
  25.   
  26.                 <div class="form-group">  
  27.                     @Html.LabelFor(m => m.DepartmentVM.Name, new { @class = "col-md-4 control-label" })  
  28.                     <div class="col-md-4">  
  29.                         @Html.TextBoxFor(m => m.DepartmentVM.Name, new { @class = "form-control" })  
  30.                         @Html.ValidationMessageFor(m => m.DepartmentVM.Name, "", new { @class = "text-danger" })  
  31.                     </div>  
  32.                 </div>  
  33.   
  34.                 <div class="form-group">  
  35.                     @Html.LabelFor(m => m.DepartmentVM.GroupName, new { @class = "col-md-4 control-label" })  
  36.                     <div class="col-md-4">  
  37.                         @Html.TextBoxFor(m => m.DepartmentVM.GroupName, new { @class = "form-control" })  
  38.                         @Html.ValidationMessageFor(m => m.DepartmentVM.GroupName, "", new { @class = "text-danger" })  
  39.                     </div>  
  40.                 </div>  
  41.   
  42.                 <div class="form-group">  
  43.                     <div class="col-md-offset-4 col-md-10">  
  44.                         <button asp-page-handler="Insert" class="btn btn-default">Add Department</button>  
  45.                     </div>  
  46.                 </div>  
  47.             </form>  
  48.         </section>  
  49.     </div>  
  50. </div>  
  51.   
  52. <hr />  
  53.   
  54. <div class="row">  
  55.     <div class="col-md-offset-4 col-md-8">  
  56.         <h3>List of Departments</h3>  
  57.     </div>  
  58. </div>  
  59.   
  60. <hr />  
  61.   
  62. @if (Model.DepartmentVM != null &&  
  63.     Model.DepartmentVM.Departments != null &&  
  64.     Model.DepartmentVM.Departments.Count > 0)  
  65. {  
  66.     <div class="row">  
  67.         <div class="col-md-offset-2 col-md-7">  
  68.             <section>  
  69.                 <table class="table table-bordered table-striped">  
  70.                     <thead>  
  71.                         <tr>  
  72.                             <th style="text-align: center;">Sr.</th>  
  73.                             <th style="text-align: center;">Department Name</th>  
  74.                             <th style="text-align: center;">Department Group</th>  
  75.                         </tr>  
  76.                     </thead>  
  77.   
  78.                     <tbody>  
  79.                         @for (int i = 0; i < Model.DepartmentVM.Departments.Count; i++)  
  80.                         {  
  81.                             <tr>  
  82.                                 <td style="text-align: center;">@(i + 1)</td>  
  83.                                 <td style="text-align: center;">@Model.DepartmentVM.Departments[i].Name</td>  
  84.                                 <td style="text-align: center;">@Model.DepartmentVM.Departments[i].GroupName</td>  
  85.                             </tr>  
  86.                         }  
  87.                     </tbody>  
  88.                 </table>  
  89.             </section>  
  90.         </div>  
  91.     </div>  

In the above code, I have created a department entry insertion form for the Razor page with the combination of razor auto generated code as similar to ASP.NET MVC Framework and ASP- attributes within the HTML tags as prescribed for Razor pages and I have also created an HTML table where I will display my department table list data.

Step 14

Open, "Pages\Index.cshtml.cs" file and replace the following code in it.

  1. //-----------------------------------------------------------------------  
  2. // <copyright file="Index.cshtml.cs" company="None">  
  3. //     Copyright (c) Allow to distribute this code and utilize this code for personal or commercial purpose.  
  4. // </copyright>  
  5. // <author>Asma Khalid</author>  
  6. //-----------------------------------------------------------------------  
  7.   
  8. namespace CoreEfDbQuery.Pages  
  9. {  
  10.     using System;  
  11.     using System.Collections.Generic;  
  12.     using System.Linq;  
  13.     using System.Security.Claims;  
  14.     using System.Threading.Tasks;  
  15.     using CoreEfDbQuery.Models;  
  16.     using CoreEfDbQuery.Models.DB;  
  17.     using Microsoft.AspNetCore.Mvc;  
  18.     using Microsoft.AspNetCore.Mvc.RazorPages;  
  19.     using Microsoft.EntityFrameworkCore;  
  20.   
  21.     /// <summary>  
  22.     /// Index page model class.  
  23.     /// </summary>  
  24.     public class IndexModel : PageModel  
  25.     {  
  26.         #region Private Properties.  
  27.   
  28.         /// <summary>  
  29.         /// Database Manager property.  
  30.         /// </summary>  
  31.         private readonly db_core_ef_firstContext databaseManager;  
  32.  
  33.         #endregion  
  34.  
  35.         #region Default Constructor method.  
  36.   
  37.         /// <summary>  
  38.         /// Initializes a new instance of the <see cref="IndexModel"/> class.  
  39.         /// </summary>  
  40.         /// <param name="databaseManagerContext">Database manager context parameter</param>  
  41.         public IndexModel(db_core_ef_firstContext databaseManagerContext)  
  42.         {  
  43.             try  
  44.             {  
  45.                 // Settings.  
  46.                 this.databaseManager = databaseManagerContext;  
  47.             }  
  48.             catch (Exception ex)  
  49.             {  
  50.                 // Info  
  51.                 Console.Write(ex);  
  52.             }  
  53.         }  
  54.  
  55.         #endregion  
  56.  
  57.         #region Public Properties  
  58.   
  59.         /// <summary>  
  60.         /// Gets or sets department model property.  
  61.         /// </summary>  
  62.         [BindProperty]  
  63.         public DepartmentViewModel DepartmentVM { getset; }  
  64.  
  65.         #endregion  
  66.  
  67.         #region On Get method.  
  68.   
  69.         /// <summary>  
  70.         /// GET: /Index  
  71.         /// </summary>  
  72.         /// <returns> Returns - index page</returns>  
  73.         public async Task OnGet()  
  74.         {  
  75.             // Initialization.  
  76.             this.DepartmentVM = new DepartmentViewModel();  
  77.   
  78.             try  
  79.             {  
  80.                 // Settings.  
  81.                 this.DepartmentVM.Departments = await this.databaseManager.TblDepartment.ToListAsync();  
  82.             }  
  83.             catch (Exception ex)  
  84.             {  
  85.                 // Info  
  86.                 Console.Write(ex);  
  87.             }  
  88.         }  
  89.  
  90.         #endregion  
  91.  
  92.         #region On Post Login method.  
  93.   
  94.         /// <summary>  
  95.         /// POST: /Index/Insert  
  96.         /// </summary>  
  97.         /// <returns>Returns - Appropriate page </returns>  
  98.         public async Task<IActionResult> OnPostInsert()  
  99.         {  
  100.             try  
  101.             {  
  102.                 // Verification.  
  103.                 if (ModelState.IsValid)  
  104.                 {  
  105.                     // Inserting data.  
  106.                     this.databaseManager.TblDepartment.Add(new TblDepartment { Name = this.DepartmentVM.Name, GroupName = this.DepartmentVM.GroupName });  
  107.   
  108.                     // Updating.  
  109.                     await this.databaseManager.SaveChangesAsync();  
  110.   
  111.                     // Info.  
  112.                     return this.RedirectToPage("/Index");  
  113.                 }  
  114.             }  
  115.             catch (Exception ex)  
  116.             {  
  117.                 // Info  
  118.                 Console.Write(ex);  
  119.             }  
  120.   
  121.             // Info.  
  122.             return this.Page();  
  123.         }  
  124.  
  125.         #endregion  
  126.     }  

Let's diagnose the above code chunk by chunk.

  1. #region Private Properties.  
  2.   
  3. /// <summary>  
  4. /// Database Manager property.  
  5. /// </summary>  
  6. private readonly db_core_ef_firstContext databaseManager; 

The above piece of code is basically a read only property to store the reference of my database context object as a part or dependency injection design pattern. Then, in the below code, I have created an overload constructor with the database context object as a parameter following the dependency injection design pattern and within my overload constructor, I have stored the reference of the database context object for my class.

  1. #region Default Constructor method.  
  2.   
  3.         /// <summary>  
  4.         /// Initializes a new instance of the <see cref="IndexModel"/> class.  
  5.         /// </summary>  
  6.         /// <param name="databaseManagerContext">Database manager context parameter</param>  
  7.         public IndexModel(db_core_ef_firstContext databaseManagerContext)  
  8.         {  
  9.             try  
  10.             {  
  11.                 // Settings.  
  12.                 this.databaseManager = databaseManagerContext;  
  13.             }  
  14.             catch (Exception ex)  
  15.             {  
  16.                 // Info  
  17.                 Console.Write(ex);  
  18.             }  
  19.         }  
  20.  
  21.         #endregion 

In ASP.NET Core framework unlike ASP.NET MVC framework, in order to bind the View Model class to the UI I need to define "[BindProperty]" data annotation above the view model public property which is defined within the IndexModel class "Pages\Index.cshtml.cs" file. as shown below.

  1. #region Public Properties  
  2.   
  3.         /// <summary>  
  4.         /// Gets or sets department model property.  
  5.         /// </summary>  
  6.         [BindProperty]  
  7.         public DepartmentViewModel DepartmentVM { getset; }  
  8.  
  9.         #endregion 

Now, the below "OnGet()" method is the default mandatory method which will be executed when the page is called. I have initialized my department View Model property with the list of department table data. The important part here to remember is that in order to get, set, update or delete data from SQL database you need to use .net core entity framework methods with "Async" posfix otherwise you wont be able to do changes in the SQL database and also do provide "using Microsoft.EntityFrameworkCore" reference in your code file otherwise you wont be able to use "Async" postfix entity framework core methods.

  1.     try  
  2.     {  
  3.         // Settings.  
  4.         this.DepartmentVM.Departments = await this.databaseManager.TblDepartment.ToListAsync();  
  5.     }  
  6.     catch (Exception ex)  
  7.     {  
  8.         // Info  
  9.         Console.Write(ex);  
  10.     }  
  11. }  
  12.  
  13. #endregion 

Next, I have created the "OnPostInsert(..)" method which will insert new department into the SQL database. Here, notice that in order to tell the framework that the method is post, I need to mandatory write the prefix "OnPost" before writing the handler name of my choice i.e. Insert. So, it will become "OnPostInsert()" method, this naming convention is important.

  1. #region On Post Login method.  
  2.   
  3.         /// <summary>  
  4.         /// POST: /Index/Insert  
  5.         /// </summary>  
  6.         /// <returns>Returns - Appropriate page </returns>  
  7.         public async Task<IActionResult> OnPostInsert()  
  8.         {  
  9.             try  
  10.             {  
  11.                 // Verification.  
  12.                 if (ModelState.IsValid)  
  13.                 {  
  14.                     // Inserting data.  
  15.                     this.databaseManager.TblDepartment.Add(new TblDepartment { Name = this.DepartmentVM.Name, GroupName = this.DepartmentVM.GroupName });  
  16.   
  17.                     // Updating.  
  18.                     await this.databaseManager.SaveChangesAsync();  
  19.   
  20.                     // Info.  
  21.                     return this.RedirectToPage("/Index");  
  22.                 }  
  23.             }  
  24.             catch (Exception ex)  
  25.             {  
  26.                 // Info  
  27.                 Console.Write(ex);  
  28.             }  
  29.   
  30.             // Info.  
  31.             return this.Page();  
  32.         }  
  33.  
  34.         #endregion 

To access the "OnPostInsert(...)" method in the HTML, you do not need to write the "OnPost" prefix, but, only "Insert" as shown in the below line of code from "Pages\Index.cshtml" file which will post request to the "OnPostInsert(...)" method.

  1. <div class="form-group">  
  2.     <div class="col-md-offset-4 col-md-10">  
  3.         <button asp-page-handler="Insert" class="btn btn-default">Add Department</button>  
  4.     </div>  
  5. </div> 

Step 15

Now, create "Pages\ProductPage.cshtml" file and replace the following code in it.

  1. @page  
  2. @model CoreEfDbQuery.Pages.ProductPageModel  
  3. @{  
  4.     ViewBag.Title = "ASP.NET Core - Entity Framework Query through DB";  
  5. }  
  6.   
  7. <div class="row">  
  8.     <div class="col-md-offset-2 col-md-12">  
  9.         <h2>ASP.NET Core - Entity Framework Query through DB</h2>  
  10.     </div>  
  11. </div>  
  12.   
  13. <hr />  
  14.   
  15. <div class="row">  
  16.     <div class="col-md-offset-4 col-md-8">  
  17.         <h3>List of Products</h3>  
  18.     </div>  
  19. </div>  
  20.   
  21. <hr />  
  22.   
  23. @if (Model.ProductVM != null &&   
  24.      Model.ProductVM.Products != null &&  
  25.      Model.ProductVM.Products.Count > 0)  
  26. {  
  27.     <div class="row">  
  28.         <div class="col-md-offset-1 col-md-8">  
  29.             <section>  
  30.                 <table class="table table-bordered table-striped">  
  31.                     <thead>  
  32.                         <tr>  
  33.                             <th style="text-align: center;">Sr.</th>  
  34.                             <th style="text-align: center;">Product Name</th>  
  35.                             <th style="text-align: center;">Product Number</th>  
  36.                             <th style="text-align: center;">Color</th>  
  37.                             <th style="text-align: center;">Quantity</th>  
  38.                             <th style="text-align: center;">Price</th>  
  39.                         </tr>  
  40.                     </thead>  
  41.   
  42.                     <tbody>  
  43.                         @for (int i = 0; i < Model.ProductVM.Products.Count; i++)  
  44.                         {  
  45.                         <tr>  
  46.                             <td style="text-align: center;">@(i + 1)</td>  
  47.                             <td style="text-align: center;">@Model.ProductVM.Products[i].Name</td>  
  48.                             <td style="text-align: center;">@Model.ProductVM.Products[i].ProductNumber</td>  
  49.                             <td style="text-align: center;">@Model.ProductVM.Products[i].Color</td>  
  50.                             <td style="text-align: center;">@Model.ProductVM.Products[i].Quantity</td>  
  51.                             <td style="text-align: center;">@Model.ProductVM.Products[i].Price.ToString("#,##0") </td>  
  52.                         </tr>  
  53.                         }  
  54.                     </tbody>  
  55.                 </table>  
  56.             </section>  
  57.         </div>  
  58.     </div>  

The above code is a simple view of product page which will display the list of products to the user.

Step 16

Now, open "Pages\ProductPage.cshtml.cs" file and replace the following code in it.

  1. //-----------------------------------------------------------------------  
  2. // <copyright file="ProductPage.cshtml.cs" company="None">  
  3. //     Copyright (c) Allow to distribute this code and utilize this code for personal or commercial purpose.  
  4. // </copyright>  
  5. // <author>Asma Khalid</author>  
  6. //-----------------------------------------------------------------------  
  7.   
  8. namespace CoreEfDbQuery.Pages  
  9. {  
  10.     using System;  
  11.     using System.Collections.Generic;  
  12.     using System.Linq;  
  13.     using System.Security.Claims;  
  14.     using System.Threading.Tasks;  
  15.     using CoreEfDbQuery.Models;  
  16.     using CoreEfDbQuery.Models.DB;  
  17.     using Microsoft.AspNetCore.Mvc;  
  18.     using Microsoft.AspNetCore.Mvc.RazorPages;  
  19.     using Microsoft.EntityFrameworkCore;  
  20.   
  21.     /// <summary>  
  22.     /// Product page model class.  
  23.     /// </summary>  
  24.     public class ProductPageModel : PageModel  
  25.     {  
  26.         #region Private Properties.  
  27.   
  28.         /// <summary>  
  29.         /// Database Manager property.  
  30.         /// </summary>  
  31.         private readonly db_core_ef_firstContext databaseManager;  
  32.  
  33.         #endregion  
  34.  
  35.         #region Default Constructor method.  
  36.   
  37.         /// <summary>  
  38.         /// Initializes a new instance of the <see cref="ProductPageModel"/> class.  
  39.         /// </summary>  
  40.         /// <param name="databaseManagerContext">Database manager context parameter</param>  
  41.         public ProductPageModel(db_core_ef_firstContext databaseManagerContext)  
  42.         {  
  43.             try  
  44.             {  
  45.                 // Settings.  
  46.                 this.databaseManager = databaseManagerContext;  
  47.             }  
  48.             catch (Exception ex)  
  49.             {  
  50.                 // Info  
  51.                 Console.Write(ex);  
  52.             }  
  53.         }  
  54.  
  55.         #endregion  
  56.  
  57.         #region Public Properties  
  58.   
  59.         /// <summary>  
  60.         /// Gets or sets product model property.  
  61.         /// </summary>  
  62.         [BindProperty]  
  63.         public ProductViewModel ProductVM { getset; }  
  64.  
  65.         #endregion  
  66.  
  67.         #region On Get method.  
  68.   
  69.         /// <summary>  
  70.         /// GET: /ProductPage  
  71.         /// </summary>  
  72.         /// <returns> Returns - product page</returns>  
  73.         public async Task OnGet()  
  74.         {  
  75.             // Initialization.  
  76.             this.ProductVM = new ProductViewModel();  
  77.   
  78.             try  
  79.             {  
  80.                 // Settings.  
  81.                 this.ProductVM.Products = await this.databaseManager.TblProduct.OrderBy(p => p.Price).ToListAsync();  
  82.             }  
  83.             catch (Exception ex)  
  84.             {  
  85.                 // Info  
  86.                 Console.Write(ex);  
  87.             }  
  88.         }  
  89.  
  90.         #endregion  
  91.     }  

The above code is created on a same pattern as "Index.cshtml.cs" file page. Here, I have created the data context manager which will store the reference of the data context, the the overload constructor to capture the data context , then binding view model property and finally the "OnGet" default method which will initialize the model with the product list.

Step 17

Create "Pages\VendorPage.cshtml" file and replace the following code in it i.e.:

  1. @page  
  2. @model CoreEfDbQuery.Pages.VendorPageModel  
  3. @{  
  4.     ViewBag.Title = "ASP.NET Core - Entity Framework Query through DB";  
  5. }  
  6.   
  7. <div class="row">  
  8.     <div class="col-md-offset-2 col-md-12">  
  9.         <h2>ASP.NET Core - Entity Framework Query through DB</h2>  
  10.     </div>  
  11. </div>  
  12.   
  13. <hr />  
  14.   
  15. <div class="row">  
  16.     <div class="col-md-offset-4  col-md-8">  
  17.         <h3>List of Vendors</h3>  
  18.     </div>  
  19. </div>  
  20.   
  21. <hr />  
  22.   
  23. @if (Model.VendorVM != null &&   
  24.      Model.VendorVM.Vendors != null &&  
  25.      Model.VendorVM.Vendors.Count > 0)  
  26. {  
  27.     <div class="row">  
  28.         <div class="col-md-offset-3 col-md-4">  
  29.             <section>  
  30.                 <table class="table table-bordered table-striped">  
  31.                     <thead>  
  32.                         <tr>  
  33.                             <th style="text-align: center;">Sr.</th>  
  34.                             <th style="text-align: center;">Vendor Name</th>  
  35.                         </tr>  
  36.                     </thead>  
  37.   
  38.                     <tbody>  
  39.                         @for (int i = 0; i < Model.VendorVM.Vendors.Count; i++)  
  40.                         {  
  41.                             <tr>  
  42.                                 <td style="text-align: center;">@(i + 1)</td>  
  43.                                 <td style="text-align: center;">@Model.VendorVM.Vendors[i].Name</td>  
  44.                             </tr>  
  45.                         }  
  46.                     </tbody>  
  47.                 </table>  
  48.             </section>  
  49.         </div>  
  50.     </div>  

The above code is a simple view of vendor page which will display the list of vendors to the user.

Step 18

Now, open "Pages\VendorPage.cshtml.cs" file and replace the following in it i.e.

  1. //-----------------------------------------------------------------------  
  2. // <copyright file="VendorPage.cshtml.cs" company="None">  
  3. //     Copyright (c) Allow to distribute this code and utilize this code for personal or commercial purpose.  
  4. // </copyright>  
  5. // <author>Asma Khalid</author>  
  6. //-----------------------------------------------------------------------  
  7.   
  8. namespace CoreEfDbQuery.Pages  
  9. {  
  10.     using System;  
  11.     using System.Collections.Generic;  
  12.     using System.Linq;  
  13.     using System.Security.Claims;  
  14.     using System.Threading.Tasks;  
  15.     using CoreEfDbQuery.Models;  
  16.     using CoreEfDbQuery.Models.DB;  
  17.     using Microsoft.AspNetCore.Mvc;  
  18.     using Microsoft.AspNetCore.Mvc.RazorPages;  
  19.     using Microsoft.EntityFrameworkCore;  
  20.   
  21.     /// <summary>  
  22.     /// Vendor page model class.  
  23.     /// </summary>  
  24.     public class VendorPageModel : PageModel  
  25.     {  
  26.         #region Private Properties.  
  27.   
  28.         /// <summary>  
  29.         /// Database Manager property.  
  30.         /// </summary>  
  31.         private readonly db_core_ef_firstContext databaseManager;  
  32.  
  33.         #endregion  
  34.  
  35.         #region Default Constructor method.  
  36.   
  37.         /// <summary>  
  38.         /// Initializes a new instance of the <see cref="VendorPageModel"/> class.  
  39.         /// </summary>  
  40.         /// <param name="databaseManagerContext">Database manager context parameter</param>  
  41.         public VendorPageModel(db_core_ef_firstContext databaseManagerContext)  
  42.         {  
  43.             try  
  44.             {  
  45.                 // Settings.  
  46.                 this.databaseManager = databaseManagerContext;  
  47.             }  
  48.             catch (Exception ex)  
  49.             {  
  50.                 // Info  
  51.                 Console.Write(ex);  
  52.             }  
  53.         }  
  54.  
  55.         #endregion  
  56.  
  57.         #region Public Properties  
  58.   
  59.         /// <summary>  
  60.         /// Gets or sets vendor model property.  
  61.         /// </summary>  
  62.         [BindProperty]  
  63.         public VendorViewModel VendorVM { getset; }  
  64.  
  65.         #endregion  
  66.  
  67.         #region On Get method.  
  68.   
  69.         /// <summary>  
  70.         /// GET: /VendorPage  
  71.         /// </summary>  
  72.         /// <returns> Returns - vendor page</returns>  
  73.         public async Task OnGet()  
  74.         {  
  75.             // Initialization.  
  76.             this.VendorVM = new VendorViewModel();  
  77.   
  78.             try  
  79.             {  
  80.                 // Settings.  
  81.                 this.VendorVM.Vendors = await this.databaseManager.TblVendor.ToListAsync();  
  82.             }  
  83.             catch (Exception ex)  
  84.             {  
  85.                 // Info  
  86.                 Console.Write(ex);  
  87.             }  
  88.         }  
  89.  
  90.         #endregion  
  91.     }  

The above code is created on a same pattern as "Index.cshtml.cs" file page. Here, I have created the data context manager which will store the reference of the data context, the overload constructor to capture the data context , then binding view model property and finally the "OnGet" default method which will initialize the model with the vendor list.

Step 19

Execute the project and you will be able to see the following i.e.

ASP.NET Core - Entity Framework Query Through Database

ASP.NET Core - Entity Framework Query Through Database

ASP.NET Core - Entity Framework Query Through Database

Step 20

Notice in the list of departments that all the data shown is the default data i.e.

ASP.NET Core - Entity Framework Query Through Database

ASP.NET Core - Entity Framework Query Through Database

Now, insert new department and observe that the data is also inserted into the SQL server database as well i.e.

ASP.NET Core - Entity Framework Query Through Database

ASP.NET Core - Entity Framework Query Through Database

ASP.NET Core - Entity Framework Query Through Database

Conclusion

In this article, you will learn to query read data and insert data commands to SQL server databse via entity framework. You will also learn to scaffold existing database context into your web application via NuGet Package Console command. You will also learn about dependency injection design pattern utilization. You will also learn about registration of database context .net microservices with the .net core framework in order to utilize the SQL server database access and you will also learn about razor pages development.