آموزش استفاده از Entity Framework در ASP.Net Web Forms با مثال

دراین مقاله به آموزش Entity Framework و نحوه ارتباط با پایگاه داده در   ASP.Net Web Forms  با استفاده از C# و VB.Net خواهیم پرداخت .

مثال زیر  بااستفاده از Entity Framework  عملیات bind  کردن را روی یک کنترل GridView را  نشان می دهد.

پایگاه داده

پایگاه داده ای که برای این مثال استفاده می شود از لینک زیر قابل دانلود است:

پایگاه داده Northwind را دانلود و نصب کنید

پیکربندی و اتصال Entity Framework به پایگاه داده

حال مراحل افزودن Entity Framework برای ارتباط با پایگاه داده را توضیح می دهم.

ابتدا یک Entity Data Model  با استفاده از دیالوگ Add New Item به پروژه اضافه کنید مانند شکل زیر:

EntityFramework

بعد از اضافه کردن Entity Data Model پیغام زیر ظاهر می شود . گزینه YES  را انتخاب کنید.

EntityLinqASP

سپس ویزارد Entity Data Model Wizard باز خواهد شد در این قسمت گزینه Generate from database را انتخاب کنید

EntityModel

اکنون پنجره ای باز می شود که از شما برای انجام تنظیمات رشته اتصال و ارتباط با پایگاه داده اطلاعاتی می خواهد .

EntityContectDatabase

شما نیاز به وارد کردن موارد زیر دارید:

  1. نمونه (Instance) پایگاه داده
  2. نام پایگاه داده

سپس برروی Test Connection کلیک کرده تا مطمئن شوید که همه تنظیمات به درستی انجام شده است. در پایان برروی OK  کلیک کرده و به مرحله بعد بروید.

در مرحله بعد  جدول هایی که برای کار با  Entity Framework احتیاج می شود را انتخاب می کنیم . برای مثال من جدول Customer  را انتخاب و علامت می زنم.

EntitySelectTable

در بالا آخرین مرحله انجام شد و اکنون Entity Data Model با جدول Customers از پایگاه داده Northwind آماده استفاده است.

EntityTableSelect

ایجاد یک کلاس جهت آماده کردن داده ها برای ObjectDataSource

من یک کلاس با نام CustomerDS در پوشه App_Code وب سایت ایجاد کردم که شامل ۲ متد می باشد یکی برای گرفتن رکورد های مشتریان با استفاده از LINQ و دیگری مجموع رکورد ها . این ۲ متد بعدا برای کار با ObjectDataSource مورد نیاز می باشد.

#C

using System;
using System.Web;
using System.Linq;
using NorthwindModel;
using System.Collections.Generic;
 
public class CustomerDS
{
    public List<Customer> GetCustomers(int startIndex, int maxRows)
    {
        using (NorthwindEntities entities = new NorthwindEntities())
        {
            return (from customer in entities.Customers
                    select customer)
                        .OrderBy(customer => customer.CustomerID)
                        .Skip(startIndex)
                        .Take(maxRows).ToList();
        }
    }
 
    public int GetCustomersCount()
    {
        using (NorthwindEntities entities = new NorthwindEntities())
        {
            return entities.Customers.Count();
        }
    }
}

VB.Net

Imports System.Linq
Imports NorthwindModel
Imports System.Collections.Generic
 
Public Class CustomerDS
    Public Function GetCustomers(startIndex As Integer, maxRows As Integer) As List(Of Customer)
        Using entities As New NorthwindEntities()
            Return (From customer In entities.Customers) _
                .OrderBy(Function(customer) customer.CustomerID) _
                .Skip(startIndex) _
                .Take(maxRows).ToList()
        End Using
    End Function
 
    Public Function GetCustomersCount() As Integer
        Using entities As New NorthwindEntities()
            Return entities.Customers.Count()
        End Using
    End Function
End Class

اولین متد GetCustomers لیست کامل مشتریان را برای استفاده در ObjectDataSource با استفاده از LINQ بر می گرداند. و دومین متد GetCustomersCount مجموع رکورد های حاضر در جدول را بر می گرداند.

همچنین به این نکته توجه کنید که ۲ پارامتر startIndex و maxRows  برای سفارشی کردن صفحه بندی با استفاده از Entity Framework و LINQ  ارسال شده است.

در پایان GridView زیر به ObjectDataSource متصل شده است.

<asp:GridView ID="gvCustomers" CssClass="Grid" runat="server" AutoGenerateColumns="false"
    PageSize="10" AllowPaging="true" DataSourceID="dsCustomers">
    <Columns>
        <asp:BoundField DataField="CustomerId" HeaderText="Customer Id" />
        <asp:BoundField DataField="ContactName" HeaderText="Contact Name" />
        <asp:BoundField DataField="City" HeaderText="City" />
        <asp:BoundField DataField="Country" HeaderText="Country" />
    </Columns>
</asp:GridView>
<asp:ObjectDataSource ID="dsCustomers" runat="server" EnablePaging="true" SelectMethod="GetCustomers"
    SelectCountMethod="GetCustomersCount" TypeName="CustomerDS" MaximumRowsParameterName="maxRows"
    StartRowIndexParameterName="startIndex"></asp:ObjectDataSource>

در کدهای بالا از  نام  متغیر ها و متد ها ی کلاس CustomerDS استفاده شده است  :

  1.  TypeName – CustomerDS
  2. SelectMethod – GetCustomers
  3.  SelectCountMethod – GetCustomersCount
  4.  MaximumRowsParameterName – maxRows
  5.   StartRowIndexParameterName –  startIndex

اکنون پروژه را اجرا کرده و خروجی حاصل را مشاهده کنید.

دانلود پروژه

ورکشاپ رایگان دوره های تخصصی برنامه نویسی

شما این فرصت را دارید، با تکمیل فرم زیر، قبل از انتخاب دوره آموزشی مناسب خود، در ورکشاپ رایگان دوره های تخصصی برنامه نویسی شرکت کنید

درباره‌ی محمد آذرنیوا

من محمد آذرنیوا، نویسنده و مدرس دوره های برنامه نویسی ، طراحی وب و تحلیل گر پایگاه داده هستم و قصد دارم در این وبسایت مطالب کاربردی در این زمینه را با شما به اشتراک بگذارم. بیشتر از یک برنامه نویس باشید...

همچنین ببینید

دوره آموزش طراحی سایت با ASP.NET مشهد

آموزش طراحی سایت با ASP.NET مشهد

آموزش طراحی سایت مشهد (دوره آموزشی) : تکنولوژی ASP.NET ، یک تکنولوژی روز برای ساخت صفحات …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *