繁体   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