2012-04-11 3 views
2

MySql에서 다음 작업을 수행하려고하지만 함수가 지원되지 않는다는 linq-to-entities 예외가 발생합니다. SqlFunctions.DateAdd를 사용하여 성공적으로 시도했습니다. 유일한 해결책은 지금까지 ToList()를 사용하는 것입니다하지만 내가 사랑하지 않는 클라이언트에 모든을 제공합니다 :MySql Linq-Entities 날짜 비교

var expiredPolcies = context.ApiUsagePolicies 
    .Where(u => DateTime.UtcNow > u.UsagePolicyStart.AddSeconds(u.UsagePeriodSeconds)); 

답변

1

SqlFunctions는 엔티티 프레임 워크와 SQL 서버에만 적용됩니다.

SqlMethods은 Linq to SQL 및 SQL Server에만 적용됩니다.

MySql에 해당하는 메소드 세트가 있으면 사용할 수 있습니다.

또는 로컬 메서드가 포함되지 않도록 쿼리를 다시 작성해보십시오. 다음과 같이 시도하십시오 :

var expiredPolcies = context.ApiUsagePolicies 
    .Where(u => 
     (DateTime.UtcNow - u.UsagePolicyStart).TotalSeconds > u.UsagePeriodSeconds); 

모두 Linq 공급자가 지원하는 기능에 따라 다릅니다.