Comment demander au serveur de base de données la date et l'heure actuelles à l'aide du cadre d'entité?

entity-framework entity-framework-4 entity-framework-6

Question

J'ai une entité avec une propriété ModifiedDateTime que je veux mettre à jour avec l'heure actuelle de la base de données au lieu du serveur "application" exécutant l'application.

Chaque fois que je souhaite mettre à jour ou ajouter une personne à ma base de données sur SQL Server 2008, je souhaite remplir le fichier ModifiedDateTime. Ce n'est pas comme si je pouvais changer la requête de mise à jour comme avec la commande d'adaptateur de données lorsque je travaille avec un ensemble de données et que je dois définir pour mon fichier ModifiedDateTime la valeur de GetDate (). J'ai créé une fonction stockée pour me renvoyer une valeur de la méthode GetDate (), mais j'ai un problème pour importer une procédure qui renvoie des valeurs sous forme int, chaîne ou aucune valeur, déjà uniquement des valeurs d'entité telles que Person, par exemple dans mon cas. Pourquoi donc?

Quoi qu'il en soit, ce serait très utile si vous pouviez m'aider à extraire le DateTime actuel du serveur de base de données.

Réponse acceptée

Y a-t-il une raison pour laquelle vous ne pouvez simplement pas l'enfoncer dans votre base de données? Si vous incluez DateTime.Now dans votre requête d'entité, il la repoussera (getdate) dans la base de données.

Exemple linq aux entités

 var dQuery = dbContext.CreateQuery<DateTime>("CurrentDateTime() ");
 DateTime dbDate = dQuery.AsEnumerable().First();

SQL généré ..

SELECT GetDate() AS [C1] FROM  ( SELECT cast(1 as bit) AS X ) AS [SingleRowTable1]

Peut-être une meilleure façon de le faire?


Réponse populaire

Ceci est une mise à jour de la réponse de @Nix à EF4:

var dateQuery = dbContext.Database.SqlQuery<DateTime>("SELECT getdate()");
DateTime serverDate = dateQuery.AsEnumerable().First();


Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow