精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
锐英源精品开源心得,转载请注明:“锐英源www.wisestudy.cn,孙老师作品,电话13803810136。”需要全文内容也请联系孙老师。
This sample shows how you can use the entity framework in an application ASP.NET with an architecture in layers. This is useful for applications that are pretty small and fast. The code uses select, update, create and deletefunctions. You can use this example with stored procedures or without this. This sample is aimed at newcomers to EF.
This is a small idea that occurred to me to implement the concepts of Entity Framework in ASP.NET, but I'm honest I stumbled across a lot of blocks while making this exercise. The first context is complex and that creates some objects in memory, on the other hand I had to send objects to be processed. There was no need for stored entity framework to be a key, otherwise errors would be raised.
First view the structure of the database. This example uses two tables, i.e., Customers and Category.Customers have a relation with Category.
The project has a structure in three layers. The layer for business that contains the project entities, the project components, the layer of data and the layer of presentation.
The layer of business contains two projects that are Solution.Bussines.Entities. This contains the same structure of the tables and is mapped with the structure of the database.
The Model has the same structure of database which uses ADO.NET Entity Data Model.
The table customer has a relation with stored procedures.
It is important that you see the relation for delCustomer, you only need Id for delete but the entity framework is required for the table referenced.
The next class Customers extends the model generated with ADO.NET Entity Data Model which usesCategoryReference for loading Category of Customer in the line:
this.CategoryReference.Load();his form easily obtains a class referenced in another class and can also be used for showing in a grid.
{ public const string EntitySetName = "Customers"; [Browsable(false)] public string CategoryName { get { string res = ""; if (this.Category != null) { res = this.Category.Name; } else if (this.CategoryReference != null) { this.CategoryReference.Load(); if (this.Category != null) { res = this.Category.Name; } } return res; } set { this.CategoryReference.EntityKey = new EntityKey("CustomersEntities.Category", "CategoryId", value); } }
In the next fragment of code was extended the class entities or best call context for that has a singleton pattern and solution to the problem of creating many instances that do not close completely when you use using or dispose.
public static CustomersEntities Context { get { string objectContextKey = HttpContext.Current.GetHashCode().ToString("x"); if (!HttpContext.Current.Items.Contains(objectContextKey)) { HttpContext.Current.Items.Add(objectContextKey, new CustomersEntities()); } return HttpContext.Current.Items[objectContextKey] as CustomersEntities; } }
The Solution.Bussines.Components layer manages the logic of business and joins the layer of data with the layer of entities.
This layer is composed by the class CustomersComponent.cs which calls the layer of data. Here you can add more logic code for your business.