web-dev-qa-db-ja.com

LINQ to Entitiesは、メソッド 'System.DateTime AddSeconds(Double)'メソッドを認識せず、このメソッドをに変換できません。

私はこのエラーを受け取ります

_base {System.SystemException} = {"LINQ to Entities does not recognize the method 'System.DateTime AddSeconds(Double)' method, and this method cannot be translated into a store expression."}
_

このコードで

_      var eventToPushCustom = eventCustomRepository.FindAllEventsCustomByUniqueStudentReference(userDevice.UniqueStudentReference)
                                    .Where(x => x.DateTimeStart > currentDateTime && currentDateTime >= x.DateTimeStart.AddSeconds(x.ReminderTime))
                                    .Select(y => new EventPushNotification
                                    {
                                        Id = y.EventId,
                                        EventTitle = y.EventTitle,
                                        DateTimeStart = y.DateTimeStart,
                                        DateTimeEnd = y.DateTimeEnd,
                                        Location = y.Location,
                                        Description = y.Description,
                                        DeviceToken = y.UsersDevice.DeviceTokenNotification
                                    });
_

問題はx.DateTimeStart.AddSeconds(x.ReminderTime)にあると思います

私の場合の.AddSecondsの引数は「動的」でなければなりません...それを解決する方法はありますか?

23
GibboK

EntityFunctions.AddSeconds メソッドを使用して、サーバー側で日時を作成します。

 .Where(x => x.DateTimeStart > currentDateTime && 
             currentDateTime >= EntityFunctions.AddSeconds(x.DateTimeStart, x.ReminderTime))
41