Compare DateTime (LINQ, Entity Framework) ในการ Compare ชนิดข้อมูลที่เป็น DateTime สามารถใช้ได้เช่นเดียวกับ BETWEEN แต่สามารถประยุกต์การใช้งานได้กับการเลือกรายการข้อมูล เช่น DateTime ที่เป็นค่า null เราสามารถเลือกที่จะใส่เงื่อนไขได้จากการมา Where เพิ่มทีหลัง
Example : การใช้ Compare DateTime บน LINQ to Entities
Code (C#)
private void frmMain_Load(object sender, EventArgs e)
{
// Create new entities Object
using (var db = new myDatabaseEntities())
{
// DateTime
DateTime? dtFrom = null;
DateTime? dtTo = Convert.ToDateTime("15-Aug-2015");
// Get data from AUDIT
var ds = (from c in db.AUDIT
select c).ToList();
// Compare From
if (dtFrom != null)
{
ds = ds.Where(o => (o.LOG_DATE >= dtFrom)).ToList();
}
// Compare To
if (dtTo != null)
{
ds = ds.Where(o => (o.LOG_DATE <= dtTo)).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 Object
Using db = New myDatabaseEntities()
' DateTime
Dim dtFrom? As DateTime = Nothing
Dim dtTo? As DateTime = Convert.ToDateTime("15-Aug-2015")
' Get data from AUDIT
Dim ds = (From c In db.AUDIT Select c).ToList()
' Compare From
If Not IsNothing(dtFrom) Then
ds = ds.Where(Function(o) (o.LOG_DATE >= dtFrom)).ToList()
End If
' Compare To
If Not IsNothing(dtTo) Then
ds = ds.Where(Function(o) (o.LOG_DATE <= dtTo)).ToList()
End If
' if found item rows
If ds.Count() > 0 Then
Me.myDataGridView.DataSource = ds
End If
End Using
End Sub