当前位置:Gxlcms > 数据库问题 > Create the Data Access Layer

Create the Data Access Layer

时间:2021-07-01 10:21:17 帮助过:30人阅读

 

In this tutorial, you‘ll start out by adding simple entity classes representing the schemas for products and categories.

The products class will contain definitions for each product.

The name of each of the members of the product class will be ProductIDProductNameDescriptionImagePathUnitPriceCategoryID, and Category.

The category class will contain definitions for each category that a product can belong to, such as Car, Boat, or Plane.

The name of each of the members of the category class will be CategoryIDCategoryNameDescription, and Products.

Each product will belong to one of the categories.

These entity classes will be added to the project‘s existing Models folder.

1.In Solution Explorer, right-click the Models folder and then select Add -> New Item.

2.Under Visual C# from the Installed pane on the left, select Code.

3.Select Class from the middle pane and name this new class Product.cs.

4.Click Add.
          The new class file is displayed in the editor.

5.Replace the default code with the following code:

 

6.Create another class by repeating steps 1 through 4, however,

name the new class Category.cs and replace the default code with the following code:

 

As previously mentioned, the Category class represents the type of product that the application is designed to sell (such as "Cars", "Boats", "Rockets", and so on),

and the Product class represents the individual products (toys) in the database.

Each instance of a Product object will correspond to a row within a relational database table, and each property of the Product class will map to a column in the relational database table.

Later in this tutorial, you‘ll review the product data contained in the database.

 

Data Annotations

You may have noticed that certain members of the classes have attributes specifying details about the member, such as [ScaffoldColumn(false)].

These are data annotations.

The data annotation attributes can describe how to validate user input for that member, to specify formatting for it, and to specify how it is modeled when the database is created.

 

Context Class

To start using the classes for data access, you must define a context class.

As mentioned previously, the context class manages the entity classes (such as the Product class and the Category class) and provides data access to the database.+

This procedure adds a new C# context class to the Models folder.

1.Right-click the Models folder and then select Add -> New Item.
The Add New Item dialog box is displayed.

2.Select Class from the middle pane, name it ProductContext.cs and click Add.

3.Replace the default code contained in the class with the following code:

 

This code adds the System.Data.Entity namespace so that you have access to all the core functionality of Entity Framework, which includes the capability to query, insert, update, and delete data by working with strongly typed objects.

The ProductContext class represents Entity Framework product database context, which handles fetching, storing, and updating Product class instances in the database.

The ProductContext class derives from the DbContext base class provided by Entity Framework.

 

Initializer Class

You will need to run some custom logic to initialize the database the first time the context is used.

This will allow seed data to be added to the database so that you can immediately display products and categories.

This procedure adds a new C# initializer class to the Models folder.+

1.Create another Class in the Models folder and name it ProductDatabaseInitializer.cs.

2.Replace the default code contained in the class with the following code:

 

As you can see from the above code, when the database is created and initialized, the Seed property is overridden and set.

When the Seedproperty is set, the values from the categories and products are used to populate the database.

If you attempt to update the seed data by modifying the above code after the database has been created, you won‘t see any updates when you run the Web application.

The reason is the above code uses an implementation of the DropCreateDatabaseIfModelChanges class to recognize if the model (schema) has changed before resetting the seed data.

If no changes are made to the Category and Product entity classes, the database will not be reinitialized with the seed data.

 

 

 

 

 

 

Create the Data Access Layer

标签:sdn   method   included   asp.net   btn   att   structure   lib   val   

人气教程排行