2012-01-03 3 views
1

날짜를 비교하는 데 몇 가지 방법을 시도했지만 "잘못된 위치"가 발생할 때마다 엔티티 멤버가 잘못된 속성이나 메서드를 호출하고 있습니다 ."-오류!CRM 2011 - LINQ에서 연도 비교 쿼리 - 오류 발생 : '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 년에 대한 모든 송장을받을 수있는 방법이 있나요?

모든 도움을 주신 Thx!

답변

2

문제는 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)); 
+0

해결 방법은 Thx입니다. 이것이 내가 필요한 것입니다.) – Freeetje