은 내가 MVC 5 인터넷 응용 프로그램을 코딩하고, 다음과 같은 오류가 점점 오전 : 여기 "LINQ to Entities가 'Boolean ***'메서드를 인식하지 못하고이 메서드를 저장소 식으로 변환 할 수 없습니다."
base = {"LINQ to Entities does not recognize the method 'Boolean IsAccountSetupForSendingFreeTrialSubscriptionExpirationEmail(CanFindLocation.Models.Account)' method, and this method cannot be translated into a store expression."}
내 방법이 있습니다를 :
public IEnumerable<Account> GetFreeTrialAccountsForSendDailyExpirationEmails(int minimumDaysLeftInSubscriptionForEmail)
{
IEnumerable<Account> freeTrialAccounts = genericMultipleRepository.accounts.Value.SearchFor(a => IsAccountSetupForSendingFreeTrialSubscriptionExpirationEmail(a) && ShouldDailyExpirationEmailBeSentForFreeTrialAccount(a, minimumDaysLeftInSubscriptionForEmail));
return freeTrialAccounts;
}
public bool IsAccountSetupForSendingFreeTrialSubscriptionExpirationEmail(Account account)
{
if (account.isFreeTrial && account.sendSubscriptionExpirationEmail)
{
return true;
}
else
{
return false;
}
}
public bool ShouldDailyExpirationEmailBeSentForFreeTrialAccount(Account account, int minimumDaysLeftInSubscriptionForEmail)
{
if (IsExpiresDateTimeLessThanMinimumDaysLeftInFreeTrialSubscription(account, minimumDaysLeftInSubscriptionForEmail) && !HasSubscriptionEmailBeenSentForCurrentFreeTrialEndDateTime(account))
{
return true;
}
else
{
return false;
}
}
public bool IsExpiresDateTimeLessThanMinimumDaysLeftInFreeTrialSubscription(Account account, int minimumDaysLeftInSubscriptionForEmail)
{
TimeSpan expires = account.freeTrialEndDate - DateTime.UtcNow;
return expires.Days < minimumDaysLeftInSubscriptionForEmail;
}
public bool HasSubscriptionEmailBeenSentForCurrentFreeTrialEndDateTime(Account account)
{
return account.subscriptionEndDateForExpirationEmail == account.freeTrialEndDate;
}
내 계정 객체는 다음과 같은 필드가 있습니다
public bool isFreeTrial { get; set; }
public bool sendSubscriptionExpirationEmail { get; set; }
public DateTime subscriptionEndDateForExpirationEmail { get; set; }
public DateTime freeTrialEndDate { get; set; }
을
일부 연구를 수행했으며 작성한 코드를 LINQ 표현식으로 변환 할 수 없음을 확인했습니다.
LINQ to Entities에서 오류를 수행하지 않도록 코드를 유효한 양식으로 변환하려면 어떻게해야합니까?
미리 감사드립니다.
'ShouldDailyExpirationEmailBeSentForFreeTrialAccount (계정 계정 minimumDaysLeftInSubscriptionForEmail를 INT)이 타입이기 때문에'하는 Linq는 표현으로 변환 할 수없는'Func을 <계정, INT, 부울> '이 아니라>'입니다. 코드를 인라인하면 제대로 작동합니다. –
Aron