2016-03-02 103 views
0

控制器:比較兩個日期在C#

public JsonResult TestArray(string id) 
{ 
    //warehouse_order warehouse_order = new warehouse_order(); 
    int[] finishedOrders = new int[8]; 
    int countErledigt; 

    var stichtag = DateTime.Today; 
    for (int i = 0; i < 8; i++) 
    { 
     stichtag = DateTime.Today.AddDays(-i); 
     countErledigt = db.warehouse_order.Where(c => c.end_time == stichtag).Count(); 
     finishedOrders[i] = countErledigt; 
    } 

    int[] test = finishedOrders; 

    return Json(test, JsonRequestBehavior.AllowGet); 
} 

型號:

[DisplayName("Erledigt am")] 
[DataType(DataType.Date)] 
public Nullable<System.DateTimeOffset> end_time { get; set; } 

我沒有帶能夠在兩個日期在控制器中進行比較。 任何想法我怎麼能做到這一點? 非常感謝

回答

0

由於您的end_time酒店的Nullable<System.DateTimeOffset>類型,但stichtagDateTime類型,你不能直接對它們進行比較。

您應該從end_time提取DateTime部分或將stichtag換行爲DateTimeOffset

由於LINQ to實體不能使用未在Where表達映射到數據庫列的屬性 - 只能選擇第二個:

var stichtag = new DateTimeOffset(DateTime.Today.AddDays(-i)); 
countErledigt = db.warehouse_order.Where(c => c.end_time == stichtag).Count(); 
+0

THX安迪,但它thorws異常(系統。 NotSupportedException) –

+0

什麼是異常文本?你確定這段代碼拋出它,而不是其他的?這段代碼非常簡單,不應該引發這種異常。 –

+0

LINQ to Entities不支持指定的類型成員'Date'。只有初始化器,實體成員和實體導航屬性 –