2012-09-04 3 views
0

C#에서 엔티티 개체가 있습니다. FBApi라는 데이터베이스 테이블을 쿼리합니다. 이 테이블은 정수 연도와 정수 월을 저장합니다. 전달 된 매개 변수보다 큰 모든 레코드를 반환해야하는 함수가 있습니다.C# Linq 쿼리에서 where 절에 동적 변수가 포함 된 쿼리

public query(int myYear, int myMonth){ 
    var context = new MCSSUtility.Entities(); 
    return context.FBApis.Where(p => p.month == month && p.year == year); 
} 

나는 DateTime 개체로 정수를 변환하는 생각,하지만 난 동적으로 변환하는 방법을 잘 모르겠습니다 where 절 날짜 시간 변수에? 두 가지 속성과 익명의 객체를 선택의 첫 번째 시도

  public query(int myYear, int myMonth){ 
       DateTime my = new DateTime(myYear,myMonth,1); 
       var context = new MCSSUtility.Entities(); 
       return context.FBApis.Where(p => EntityFunctions.CreateDateTime(p.year, p.month, 1, 0, 0, 0) >= my); 
      } 
+0

가 무엇을 반환하고 싶어를? retrun 유형의 메서드 (datetime 또는 bool?)를 포함해야합니다. –

+0

내가 만든 간단한 예입니다. 반환은 중요하지 않습니다. 그래도 고마워. –

답변

3

이 하나를 시도하십시오 당신의 FBApi 개체 및 구축 날짜 :

return context.FBApis 
.Select(s=>new{MyFBAPIObject=s,MyDateTime=newDateTime(s.Year,s.Month,1)}) 
.Where(w=>w.MyDateTime>=my) 
.Select(s2=>s2.MyFBAPIObject); 
+0

매력처럼 작동합니다. 감사!! –

+0

당신은 환영합니다! –

0

:

public query(int myYear, int myMonth){ 
    DateTime my = new DateTime(myYear,myMonth,1); 
    var context = new MCSSUtility.Entities(); 
    return context.FBApis.Where(p => new DateTime(p.year,p.month,1) >= my); 
}