Union (LINQ, Entity Framework) ในการใช้ Union บน LINQ to Entities สามารถใช้คำสั่งนี้ได้เช่นเดียวกัน โดยในการ Union นั้นข้อมูลของ 2 Table ไม่จำเป็นจะต้องมีความสัมพันธ์กัน หรือเป็นชื่อทีเ่หมือนกัน แต่ก่อนที่จะ Union กันนั้นเราจะต้องทำการเปลี่ยนชื่อ Column นั้น ๆ ให้เป็นชื่อที่เหมือนกันซะก่อน
Example 1 : ตัวอย่างการใช้ Union เพื่อนำข้อมูลของ 2 ชุดมารวมกัน
Code (C#)
private void frmMain_Load(object sender, EventArgs e)
{
// Create new entities from Entities
using (var db = new myDatabaseEntities())
{
// Get data from CUSTOMER and COUNTRY
var ds = (from c in db.CUSTOMER
select new
{
DataCol1 = c.CUSTOMER_ID,
DataCol2 = c.NAME
}).Union(from d in db.COUNTRY
select new
{
DataCol1 = d.COUNTRY_CODE,
DataCol2 = d.COUNTRY_NAME
}).OrderBy(o => o.DataCol1).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 data from CUSTOMER and COUNTRY
Dim ds = (From c In db.CUSTOMER Select New With { _
Key .DataCol1 = c.CUSTOMER_ID, _
Key .DataCol2 = c.NAME _
}).Union(From d In db.COUNTRY Select New With { _
Key .DataCol1 = d.COUNTRY_CODE, _
Key .DataCol2 = d.COUNTRY_NAME _
}).OrderBy(Function(o) o.DataCol1).ToList()
' if found item rows
If ds.Count() > 0 Then
Me.myDataGridView.DataSource = ds
End If
End Using
End Sub
Screenshot
ผลลัพธ์ที่ได้จากการ Union ข้อมูลระหว่าง 2 Table
Note! จากตัวอย่างเป็นข้อมูลการ Union ของ 2 Statement ทั้งน้ในแต่ล่ะ Statement สามารถใส่เงื่อนไขของการ Where ของตัวเองได้