RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX


A Phased Approach for Converting SQL-centric Applications to LINQ : Page 2

LINQ lets you use an object-centric approach to access and update data along with convenient automated mapping. Best of all, you don't have to completely rewrite your applications to take advantage of it.

The Product Details Page
Like the product categories page in Listing 1, the ASP.NET page that displays product details also uses an ObjectDataSource control. The key difference is that the ObjectDataSource control retrieves a ProductID value (passed via a URL query string) and passes that as an argument to the GetProductDetailsByProductID() method (see Listing 4).

When you click on a specific product hyperlink in the product categories page, you'll see a page similar to Figure 2.

Figure 2. Product Details Page: This page displays the details of a specific product.
The Department Page
In addition to displaying the products and categories information, the AdventureWorks web site also exposes a feature to add a new department to the Department table. Listing 5 shows the code for the web page supporting that feature:

Note that the deptSource control has its InsertMethod attribute set to InsertDepartment(), which accepts an argument of type DepartmentInfo. To pass an object as an argument to the method, you set the DataObjectTypeName attribute to the name of the object. The TypeName attribute is set to "Departments," which is the class that handles the communication required to perform CRUD operations against the Department table (see Listing 6).

The Departments class has two methods: GetDepartments() and InsertDepartment(). The InsertDepartment() method accepts an object of type DepartmentInfo. As the name suggests, this is a placeholder class that just contains properties for holding department related attributes (see Listing 7).

If you navigate to the department Web page from the browser you'll see a page similar to Figure 3.

Figure 3. The Departments Page: This page displays all the departments with paging enabled in a DetailsView control. By clicking on the New hyperlink, you can add a new department to the departments table.
Figure 4. Add Department Page: This page lets you enter new department details and then save the new department to the database by clicking on the Insert hyperlink.
To add a department, click on the "New" link in Figure 3. You will be redirected to a page wherein you can enter the new department details (see Figure 4).

Now that I've described the application's structure, the rest of this article concentrates on migrating the application to use LINQ.

Close Icon
Thanks for your registration, follow us on our social networks to keep up-to-date