J'ai une table avec une colonne DateTime "TimeStamp" et une colonne int "TimeoutSeconds". Je veux récupérer tous les enregistrements de cette table où DateTime.Now - TimeStamp> TimeoutSeconds. Dans un proc stocké ce fut une évidence à l'aide GetDate():LINQ to Entities 4: Requête avec calcul dans where clause
select * from Schema.TableName mp
where (GetDate() - mp.[Timestamp]) > mp.Timeout
Cependant, avec Entity Framework en utilisant soit la syntaxe LINQ ou Lambda Je ne peux pas le faire, car il semble que la variable d'entrée Lambda (mp) ne peut pas être utilisé comme partie d'un calcul que dans le cadre d'un prédicat, donc cela ne compile pas:
var records = context.TableName.Where(mp => (DateTime.Now - mp.TimeStamp) > mp.Timeout);
cela ne compile pas.
Je ne veux pas récupérer la totalité de la table puis effectuer mon filtrage en mémoire et je préfère ne pas utiliser un proc stocké ou Entity SQL. Quelles sont mes options ici?
Quelle erreur obtenez-vous? Quels sont les types de TimeStamp et Timeout? –