簡體   English   中英

Linq與實體的日期差異

[英]Difference Of Dates in Linq To Entities

我正在嘗試獲得否。 通過減去2個日期來計算天數,但是這兩個試驗都說-'DataSet不支持system.Nullable <>

public DataTable GetData()
{
    var qry = from a in MyDB.tblBranch.Where(a.EntryDate.HasValue && 
              a.exitdate.hasvalue)
              join e in MyDB.tblEmp on a.Eid equals e.Eid
              select new
              {
                 id = a.branchid,
                 name = e.empname,
                 days = System.Data.Objects
                        .EntityFunctions.DiffDays(a.ExitDate,a.EnterDate)

              };
     DataTable dt = qry.ToDataTable();
     return dt;
}

EntityFunctions.DiffDays()返回Nullable<int> ,因此您必須處理空結果

例如

qry
    .Where(d => d.days.HasValue)
    .Select(d => d.Value)

編輯

嘗試這樣

var qry = MyDB.tblBranch
    .Where(a=>a.branchid==1)
    .Select(a => new
    {
        days = System.Data.Objects
            .EntityFunctions.DiffDays(a.ExitDate,a.EnterDate)
    })
    .Where(d => d.days.HasValue)
    .Select(d => d.Value);

DataTable dt = qry.ToDataTable();

如果您想保留空值,則可以這樣做

var qry = MyDB.tblBranch
    .Where(a=>a.branchid==1)
    .Select(a => new
    {
        days = System.Data.Objects
            .EntityFunctions
            .DiffDays(a.ExitDate,a.EnterDate)
    })
    .Select(b => b.HasValue ? (Object) b.Value :  DBNull.Value);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM