¿Cómo pedir al servidor de la base de datos la fecha y hora actual utilizando el marco de la entidad?

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

Pregunta

Tengo una entidad con una propiedad ModifiedDateTime que quiero que se actualice con la fecha y hora actual de la base de datos en lugar del servidor de "aplicación" que ejecuta la aplicación.

Cada vez que quiero actualizar o agregar una persona a mi base de datos en SQL Server 2008, quiero llenar el archivo ModifiedDateTime. No es que pueda cambiar la consulta de actualización como con el comando del adaptador de datos cuando trabajo con el conjunto de datos y definir que mi ModifiedDateTime archivado sea GetDate (). Creé una función almacenada para devolverme un valor del método GetDate (), pero tengo un problema para importar un procedimiento que devuelve valores como int, cadena o ningún valor, ya solo valores de entidad como Persona, por ejemplo, en mi caso. ¿Porqué es eso?

De todos modos, sería de gran ayuda si pudiera ayudarme a recuperar el DateTime actual del servidor de la base de datos.

Respuesta aceptada

¿Hay alguna razón por la que simplemente no puede transferirlo a su base de datos? Si incluye DateTime. Ahora, en la consulta de su entidad, la enviará (getdate) a la base de datos.

Ejemplo de linq para entidades

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

Generado SQL ..

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

¿Podría ser una mejor manera de hacerlo?


Respuesta popular

Esta es una actualización de la respuesta de @Nix a EF4:

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


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué