پیکربندی و اتصال Entity Framework به پایگاه داده
حال مراحل افزودن Entity Framework برای ارتباط با پایگاه داده را توضیح می دهم. ابتدا یک Entity Data Model با استفاده از دیالوگ Add New Item به پروژه اضافه کنید مانند شکل زیر: بعد از اضافه کردن Entity Data Model پیغام زیر ظاهر می شود . گزینه YES را انتخاب کنید. سپس ویزارد Entity Data Model Wizard باز خواهد شد در این قسمت گزینه Generate from database را انتخاب کنید اکنون پنجره ای باز می شود که از شما برای انجام تنظیمات رشته اتصال و ارتباط با پایگاه داده اطلاعاتی می خواهد . شما نیاز به وارد کردن موارد زیر دارید:- نمونه (Instance) پایگاه داده
- نام پایگاه داده
ایجاد یک کلاس جهت آماده کردن داده ها برای 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 استفاده شده است :
- TypeName – CustomerDS
- SelectMethod – GetCustomers
- SelectCountMethod – GetCustomersCount
- MaximumRowsParameterName – maxRows
- StartRowIndexParameterName – startIndex
من محمد آذرنیوا، نویسنده و مدرس دوره های برنامه نویسی ، طراحی وب و تحلیل گر پایگاه داده هستم و قصد دارم در این وبسایت مطالب کاربردی در این زمینه را با شما به اشتراک بگذارم …