我想在LINQ中将日期加上两个月并显示为月份和年份。

4
在这段代码中,Resignlastdate我需要两个月后的日期。
 DateTime dtFrom = DateTime.Now;
 var Resignuser = db.Employees.Where((m => (
    && !m.IsDeleted && m.IsActive
    && m.IsResign == true
    && new DateTime(m.ResignLastDate.Value.Year,m.ResignLastDate.Value.Month + 2 , 1)  >= dtFrom `that date i need two month later date`
    && m.StatusId != 3
    && m.StatusId != 4)))
   .Select(m => new
   {
       Display = m.FirstName + " " + m.LastName,
                 GUID = m.GUID
   }).ToList();

你可以尝试先声明两个月后的日期,例如 DateTime twoMonths = DateTime.Now.AddMonths(2); 然后再使用它进行比较,例如 && twoMonths >= m.ResignLastDate - Keyur PATEL
可能是LINQ to Entities with AddMonth method的重复问题。 - PMerlet
让我试试 Keyur - Raju Parmar
Pmarlet希望辞职日期延后两个月。 - Raju Parmar
Keyur,它不起作用。谢谢。 - Raju Parmar
改进格式化 - BWA
2个回答

3
你可以试试这个。
DateTime dtFrom = DateTime.Now;
var Resignuser = db.Employees.Where((m => (
                && !m.IsDeleted && m.IsActive
                && m.IsResign == true
                && SqlFunctions.DateAdd("month",2,m.ResignLastDate)  >= dtFrom
                && m.StatusId != 3
                && m.StatusId != 4)))
                 .Select(m => new
                 {
                     Display = m.FirstName + " " + m.LastName,
                     GUID = m.GUID
                 }).ToList();

0

试试这个。对于 DbFunction,使用 System.Data.Entity。

DateTime dtFrom = DateTime.Now.AddMonth(2);
var Resignuser = db.Employees.Where((m => (
                && !m.IsDeleted && m.IsActive
                && m.IsResign == true
                && DbFunctions.TruncateTime(m.ResignLastDate)  >= DbFunctions.TruncateTime(dtFrom)
                && m.StatusId != 3
                && m.StatusId != 4)))
                 .Select(m => new
                 {
                     Display = m.FirstName + " " + m.LastName,
                     GUID = m.GUID
                 }).ToList();

谢谢,但之前的解决方案已经正常工作。 - Raju Parmar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接