Entity and Stored Procedure (LINQ, Entity Framework) |
Entity and Stored Procedure (LINQ, Entity Framework) บน Entity Framework ในความสามารถรองรับการทำงานกับ Database ประกอบด้วย Table, View และ Stored Procedure เราสามารถใช้ LINQ to Entities ทำการ Execute ตัว Stored Procedure ได้ทั้งที่เป็นแบบการ Return ค่ากลับมาด้วยการ Select หรือจะ Execute รายการประเภท Insert, Update และ Delete พร้อม ๆ กับการส่งค่า Parameters ผ่าน Stored Procedure ตาม Argument หรือ Parameters ที่ต้องการ
Table ที่จะทำการทดสอบในตัวอย่าง
Stored Procedure 1 : คำสั่ง Select ข้อมูล : getCustomer
Parameters : pCountryCode
CREATE PROCEDURE [dbo].[getCustomer]
@pCountryCode VARCHAR(2)
AS
BEGIN
-- set count customer
SELECT * FROM CUSTOMER WHERE COUNTRY_CODE = @pCountryCode
END
Stored Procedure 2 : คำสั่ง Insert ข้อมูล : insertCustomer
Parameters : pCustomerID, pName, pEmail, pCountryCode, pBudget, pUsed,
CREATE PROCEDURE [dbo].[insertCustomer]
@pCustomerID VARCHAR(4),
@pName VARCHAR(50),
@pEmail VARCHAR(50),
@pCountryCode VARCHAR(2),
@pBudget DECIMAL(18,2),
@pUsed DECIMAL(18,2)
AS
BEGIN
-- insert customer
INSERT INTO CUSTOMER VALUES (@pCustomerID,@pName,@pEmail,@pCountryCode,@pBudget,@pUsed);
END
ให้สร้าง Stored Procedure ลงใน Database
Stored Procedure ชื่อ getCustomer และ insertCustomer
กลับมายัง Model Entities บน Visual Studio ให้เลือก Update Model from Database
เลือก Stored Procedure and Functions ชื่อ getCustomer และ insertCustomer
หลังจากที่ Add เรียบร้อยแล้ว เราจะไม่เห็นรายการของ getCustomer และ insertCustomer บน Model Entities
แต่เมื่อดูใน Class View จะเห็นรายชื่อของ getCustomer และ insertCustomer พร้อมกับ Argument หรือ Parameters
Example 1 : การใช้ LINQ to Entities เพื่อ Execute ทำการ Select ข้อมูลจาก Stored Procedure
Code (C#)
private void frmMain_Load(object sender, EventArgs e)
{
// Create new entities from Entities
using (var db = new myDatabaseEntities())
{
// Get result from Stored Procedure
string strCountryCode = "US";
var ds = db.getCustomer(strCountryCode).ToList();
// if found item rows
if (ds.Count() > 0)
{
this.myDataGridView.DataSource = ds;
}
}
}
Code (VB.Net)
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' Create new entities from Entities
Using db = New myDatabaseEntities()
' Get result from Stored Procedure
Dim strCountryCode As String = "US"
Dim ds = db.getCustomer(strCountryCode).ToList()
' if found item rows
If ds.Count() > 0 Then
Me.myDataGridView.DataSource = ds
End If
End Using
End Sub
เป็นการเรียกใช้ Stored Procedure และส่งค่า Parameters
var ds = db.getCustomer(strCountryCode).ToList();
Screenshot
Example 2 : การใช้ LINQ to Entities เพื่อ Execute ทำการ Insert ข้อมูลจาก Stored Procedure
Code (C#)
private void frmMain_Load(object sender, EventArgs e)
{
// Create new entities from Entities
using (var db = new myDatabaseEntities())
{
// Delcare variable
string strCustomerID = "C005";
string strName = "Rut Wisarut";
string strEmail = "[email protected]";
string strCountryCode = "TH";
decimal iBudget = 5000000;
decimal iUsed = 0;
// Insert to Stored Procedure
int intResult = db.insertCustomer(strCustomerID, strName,
strEmail, strCountryCode, iBudget, iUsed);
}
}
Code (VB.Net)
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' Create new entities from Entities
Using db = New myDatabaseEntities()
' Delcare variable
Dim strCustomerID As String = "C005"
Dim strName As String = "Rut Wisarut"
Dim strEmail As String = "[email protected]"
Dim strCountryCode As String = "TH"
Dim iBudget As Decimal = 5000000
Dim iUsed As Decimal = 0
' Insert to Stored Procedure
Dim intResult As Integer = db.insertCustomer(strCustomerID, _
strName, strEmail, strCountryCode, iBudget, iUsed)
End Using
End Sub
เป็นการเรียกใช้ Stored Procedure และส่งค่า Parameters
int intResult = db.insertCustomer(strCustomerID, strName,
strEmail, strCountryCode, iBudget, iUsed);
Screenshot
|
ช่วยกันสนับสนุนรักษาเว็บไซต์ความรู้แห่งนี้ไว้ด้วยการสนับสนุน Source Code 2.0 ของทีมงานไทยครีเอท
|
|
|
By : |
ThaiCreate.Com Team (บทความเป็นลิขสิทธิ์ของเว็บไทยครีเอทห้ามนำเผยแพร่ ณ เว็บไซต์อื่น ๆ) |
|
Score Rating : |
|
|
|
Create/Update Date : |
2015-10-02 21:19:21 /
2017-03-15 14:42:54 |
|
Download : |
No files |
|
Sponsored Links / Related |
|
|
|
|
|