2012-11-23 35 views
0

我使用VB.NET FX 4.0和EF。 在我的代碼使用方法:VB.NET IQueryable

Dim query As System.Linq.IQueryable(Of MY_TABLE) 
Dim sCondition As String = "it.DATE_IN = '" + searchDate + "'" 
query = From c In MyContext.MY_TABLE .Where(sCondition) Select c 

有結果總是空的,我的問題是.. 如何從DATE_IN字段僅日期部分,因爲searchDate僅在格式DD/MM/YYYY

+3

它真的沒有提供任何方式讓您以強類型方式執行過濾,並避免將所有內容轉換爲字符串? –

回答

1

您可以使用EntityFunctions.TruncateTime刪除時間部分。在比較日期時,您還應該使用DateTime而不是字符串值。

Dim dateValue = DateTime.Parse(searchDate).Date 
Dim query = MyContext.MY_TABLE.Where(Function(x) _ 
      EntityFunctions.TruncateTime(x.DATE_IN) = dateValue)