Delete Entity : Delete Rows in Database (LINQ, Entity Framework) |
Delete Entity : Delete Rows in Database (LINQ, Entity Framework) ในการ Delete Entity ด้วย LINQ to Entities บน Entity Framework จะแตกกต่างกัน SQL Statement ตรงที่ ปกติแล้ว SQL Statement เราจะเขียน Delete รายการและเพิ่มเงื่อนไข Where ให้ลบเฉพาะ Record ที่ต้องการ แต่บน Entity Framework เราจะต้องทำการ Select รายการข้อมูลขึ้นมาก่อน และหลังจากที่ได้รายการข้อมูลล้วเราค่อยทำการ Delete หรือลบ แล้วค่อย Save รายการที่ได้ลบไป
Example 1 : การ Delete Entity หรือ Delete ข้อมูลที่มีเพียงรายการหรือ Record เดียว
ข้อมูลที่ต้องการ Delete ต้องการลบ USED ของ CUSTOMER_ID = C005
Code (C#)
private void frmMain_Load(object sender, EventArgs e)
{
// Create new entities from Entities
using (var db = new myDatabaseEntities())
{
// Delete CUSTOMER
string strCustomerID = "C005";
// Delete CUSTOMER
var del = db.CUSTOMER.Where(o => o.CUSTOMER_ID == strCustomerID).FirstOrDefault();
if (del != null)
{
db.CUSTOMER.Remove(del);
}
db.SaveChanges();
}
}
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()
' Delete CUSTOMER
Dim strCustomerID As String = "C005"
' Delete CUSTOMER
Dim del = db.CUSTOMER.Where(Function(o) o.CUSTOMER_ID = strCustomerID).FirstOrDefault()
If Not IsNothing(del) Then
db.CUSTOMER.Remove(del)
End If
db.SaveChanges()
End Using
End Sub
สามารถเขียนได้อีกรูปบบคือ
Code (C#)
private void frmMain_Load(object sender, EventArgs e)
{
// Create new entities from Entities
using (var db = new myDatabaseEntities())
{
// Delete CUSTOMER
string strCustomerID = "C005";
// Delete CUSTOMER
var del = (from c in db.CUSTOMER
where c.CUSTOMER_ID == strCustomerID
select c).FirstOrDefault();
if (del != null)
{
db.CUSTOMER.Remove(del);
}
db.SaveChanges();
}
}
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()
' Delete CUSTOMER
Dim strCustomerID As String = "C005"
' Delete CUSTOMER
Dim del = (From c In db.CUSTOMER Where c.CUSTOMER_ID = strCustomerID
Select c).FirstOrDefault()
If Not IsNothing(del) Then
db.CUSTOMER.Remove(del)
End If
db.SaveChanges()
End Using
End Sub
Screenshot
Example 2 : การ Delete Entity หรือ Delete ข้อมูลในหลาย ๆ รายการ หรือหลาย Record
ข้อมูลที่ต้องการ Delete โดยเลือกลบรายการที่มากกว่า 1 รายการ เช่น COUNTRY_CODE = US
Code (C#)
private void frmMain_Load(object sender, EventArgs e)
{
// Create new entities from Entities
using (var db = new myDatabaseEntities())
{
// Delete CUSTOMER
string strCountryCode = "US";
// Delete CUSTOMER
var del = db.CUSTOMER.Where(o => o.COUNTRY_CODE == strCountryCode).ToList();
if (del.Count() > 0)
{
// Loop Delete
foreach (var item in del)
{
db.CUSTOMER.Remove(item);
}
}
db.SaveChanges();
}
}
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()
' Delete CUSTOMER
Dim strCountryCode As String = "US"
' Delete CUSTOMER
Dim del = db.CUSTOMER.Where(Function(o) o.COUNTRY_CODE = strCountryCode).ToList()
If del.Count() > 0 Then
' Loop Delete
For Each item In del
db.CUSTOMER.Remove(item)
Next
End If
db.SaveChanges()
End Using
End Sub
เขียนได้อีกวิธี ซึ่งทั้ง 2 วิธ๊นี้ได้ผลลัพธ์ที่ไม่แตกต่างกัน
Code (C#)
private void frmMain_Load(object sender, EventArgs e)
{
// Create new entities from Entities
using (var db = new myDatabaseEntities())
{
// Delete CUSTOMER
string strCountryCode = "US";
// Delete CUSTOMER
var del = (from c in db.CUSTOMER
where c.COUNTRY_CODE == strCountryCode
select c).ToList();
if (del.Count() > 0)
{
// Loop Delete
foreach (var item in del)
{
db.CUSTOMER.Remove(item);
}
}
db.SaveChanges();
}
}
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()
' Delete CUSTOMER
Dim strCountryCode As String = "US"
' Delete CUSTOMER
Dim del = (From c In db.CUSTOMER Where c.COUNTRY_CODE = strCountryCode
Select c).ToList()
If del.Count() > 0 Then
' Loop Delete
For Each item In del
db.CUSTOMER.Remove(item)
Next
End If
db.SaveChanges()
End Using
End Sub
Screenshot
|
ช่วยกันสนับสนุนรักษาเว็บไซต์ความรู้แห่งนี้ไว้ด้วยการสนับสนุน Source Code 2.0 ของทีมงานไทยครีเอท
|
|
|
By : |
ThaiCreate.Com Team (บทความเป็นลิขสิทธิ์ของเว็บไทยครีเอทห้ามนำเผยแพร่ ณ เว็บไซต์อื่น ๆ) |
|
Score Rating : |
|
|
|
Create/Update Date : |
2015-10-02 21:17:55 /
2017-03-15 14:48:26 |
|
Download : |
No files |
|
Sponsored Links / Related |
|
|
|
|
|
|
|