簡體   English   中英

如何使用 linq 對實體計算兩個日期(天數)之間的差異?

[英]how can Calculate difference between two dates (number of days) using linq to entities?

var worker = from w in db.Distributions
                     join d in db.Distributions on w.WorkerId equals d.WorkerId
                     join p in db.Products on d.ProductId equals p.ProductId

                     select new DataBindingProjection
                     {
                         Date = d.DateTime,
                         ProductName = d.Product.ProductName,
                         DistributedPiece = d.Piece,
                         HowManyDays = db.Distributions.Where(r => DbFunctions.TruncateTime(r.DateTime) == DateTime.Now.Date)
                     };

        dataGridView1.DataSource = worker.ToList();

//我厭倦了這種嘗試各種方式,但現在我仍然面臨這個錯誤..System.NotSupportedException:'LINQ 不支持實體的指定類型成員'日期'。 僅支持初始化程序、實體成員和實體導航屬性。 **其中 HowManyDays 是字符串類型變量。 怎么解決? 我想看看:例子——“10天前”這個類型的答案。

嘗試以下解決方案來獲取兩個日期的日期差異:

var days = from items in Vals
            select new
            {
                days = items.maxdate - items.mindate
            };

foreach (var day in days)
{
    Console.WriteLine(day.days.TotalDays);
}

根據該錯誤消息,linq 認為Date屬性需要轉換為 SQL 語句。

嘗試在 linq 語句之前的單獨行上提前聲明DateTime.Now.Date ,例如var nowDate = DateTime.Now.Date ,然后在 linq 語句中引用nowDate而不是DateTime.Now.Date

暫無
暫無

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

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