استفاده از Stored Procedure در Entity Framework
یکشنبه 5 بهمن 1393در این مقاله میخواهیم از Stored Procedure همراه با پارامتر ورودی در Entity Framework استفاده کنیم
دراین مقاله میخواهیم به نحوه فراخوانی و اجرای یک Stored Procedure همراه با پرامتر ورودی در Entity Framework بپردازیم در این مقاله از پایگاه داده آموزشی Northwind استفاده کردیم یک Procedure بر روی جدول Customers مینویسم که یک پرامتر ورودی دارد و بر روی این جدول به جستجو می پردازد:
CREATE PROCEDURE Customers_SearchCustomers @ContactName NVARCHAR(30) AS BEGIN SET NOCOUNT ON; SELECT TOP 10 CustomerId ,ContactName ,City ,Country FROM Customers WHERE ContactName LIKE '%' + @ContactName + '%' END
حال به تنظیمات Entity برای استفاده از SP می پردازیم ابتدا یک entity data model به پروژه اضافه میکنیم:
به پایگاه داده Northwind متصل شده واز لیست sp ها Customers_SearchCustomers را انتخاب کنید:
سپس NorthwindModel خود را انتخاب کنید سپس روی آن کلیک راست کرده گزینه Add و سپس Function Import. را انتخاب کنید در پنجره باز شده ابتدا باید نام sp خود را انتخاب کنید پسCustomers_SearchCustomer
را انتخاب میکنیم سپس روی دکمه Get Column Information کلیک کنید:
سپس روی دکمه Complex Type Class کلیک وروی دکمه ok بزنید:
صفحه aspx خود را به شکل زیر ویرایش کنید:
<asp:TextBox ID="txtCustomerName" runat="server" /> <asp:Button Text="Search" runat="server" OnClick="SearchCustomers" /> <br /> <br /> <asp:GridView ID="gvCustomers" runat="server" AutoGenerateColumns="false"> <Columns> <asp:BoundField DataField="CustomerId" HeaderText="Customer Id" ItemStyle-Width = "80" /> <asp:BoundField DataField="ContactName" HeaderText="Contact Name" ItemStyle-Width = "150" /> <asp:BoundField DataField="City" HeaderText="City" ItemStyle-Width = "100" /> <asp:BoundField DataField="Country" HeaderText="Country" ItemStyle-Width = "100" /> </Columns> </asp:GridView>
ودر صفحه aspx.cs :
protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { NorthwindEntities entities = new NorthwindEntities(); gvCustomers.DataSource = entities.SearchCustomers(string.Empty); gvCustomers.DataBind(); } } protected void SearchCustomers(object sender, EventArgs e) { NorthwindEntities entities = new NorthwindEntities(); gvCustomers.DataSource = entities.SearchCustomers(txtCustomerName.Text.Trim()); gvCustomers.DataBind(); }
حالا برنامه رو اجرا کنید:
- ASP.net
- 3k بازدید
- 5 تشکر