Entity Framework 두 날짜 빼기
두 날짜를 빼는 방법?
Entity Framework에서 LINQ를 사용하여 2 일 간의 날짜 수를 결정하는 방법 지난 100 일 동안 배치 된 모든 주문을 검색하고자하는 아주 간단한 예를 살펴 보겠습니다.
using (var ctx = new MyContext())
{
int noOfDays = 30;
var orders = context.Invoices
.Where(i => DateTime.Now.Subtract(s.Date).TotalDays > noOfDays)
.ToList();
}
위의 코드를 실행하면 다음 예외가 throw됩니다.
System.NotSupportedException: LINQ to Entities does not recognize the method 'System.TimeSpan Subtract(System.DateTime)' method, and this method cannot be translated into a store expression.
StackOverflow 관련 질문
대답
LINQ를 사용하여 두 날짜를 빼는 방법은 이전 날짜를 나타내는 DateTime
변수를 정의한 다음 LINQ 쿼리의 부분에서 해당 DateTime
변수를 사용하는 것입니다.
using (var context = new EntityContext())
{
int noOfDays = 30;
DateTime oldDate = DateTime.Now.Subtract(new TimeSpan(noOfDays, 0, 0, 0, 0));
var invoices = context.Invoices
.Where(i => i.Date > oldDate)
.ToList();
}