CRM 2011 -在LINQ查询中比较年份-给出错误:Invalid 'where'条件.实体成员正在

本文关键字:Invalid where 实体 成员 条件 出错 查询 LINQ 2011 比较 CRM | 更新日期: 2023-09-27 18:19:16

我尝试了几种方法来比较日期中的年份,但每次我都得到"无效'where'条件。实体成员正在调用无效的属性或方法。"-错误!

我使用的方法:

var openInvoices = orgContext.CreateQuery<Invoice>().Where(i => i.SKY_InvoiceDate.Value.Year == 2010);
var openInvoices = orgContext.CreateQuery<Invoice>().Where(i => i.GetAttributeValue<DateTime?>("SKY_InvoiceDate".ToLower()).Value.Year == 2011); 
var openInvoices = orgContext.CreateQuery<Invoice>().Where(i => i.SKY_InvoiceDate.Value.Year.Equals(2010));

有没有办法让我得到2011年的所有发票?

谢谢你的帮助!

CRM 2011 -在LINQ查询中比较年份-给出错误:Invalid 'where'条件.实体成员正在

问题是无法正确翻译对DateTime的Year属性的调用。一个简单的解决方法:

var openInvoices = orgContext.CreateQuery<Invoice>()
    .Where(i =>
        i.SKY_InvoiceDate.Value >= new DateTime(2010, 1, 1)
        && i.SKY_InvoiceDate.Value < new DateTime(2011, 1, 1));