2012-08-27 19 views
7

¿Cómo se usa BETWEEN palabra clave en Entity Framework?¿Cómo utilizar la palabra clave BETWEEN en Entity Framework?

Ésta es mi consulta SQL

SELECT * 
    FROM [HRM].[dbo].[meals] 
    WHERE SHIFTCODE = 'Normal' 
    AND 12.59 BETWEEN [STAR TIME] AND [STAR TIME]+DURATION/10; 

Ésta es mi Código Marco de la entidad.

HRMEntities HRM = new HRMEntities(); 
      meal ml = HRM.meals.SingleOrDefault(p => p.SHIFTCODE == "Normal"); 

valor 12,59 puede ser una variable

Respuesta

12

Usted puede utilizar >= y <= con DateTime para obtener un rango.

HRMEntities HRM = new HRMEntities(); 
meal ml = HRM.meals.SingleOrDefault(p => p.SHIFTCODE == "Normal" 
            && p.StartTime <= yourTime 
            && (p.StartTime + duration) >= yourtime); 
+1

¿No deberían invertirse las verificaciones? p.StartTime <= yourTime && (p.StartTime + duration)> = tu tiempo); ? –

+0

@ YngveB.Nilsen, yup, lo mezcló al escribir la respuesta – Habib

+0

Gracias chicos y otra cosa, básicamente StartTime se almacena como DECIMAL y la duración se almacena como INT en SQL, ya que se ocupan del tiempo hay alguna manera fácil de deshacerse de los valores como 12.75 durante ejemplos, ESTRELLA dE TIEMPO = 12.45 DURACIÓN = 30 // 30 minutos HORA dE INICIO + Duración/10 = 12,75 si es myTime 11.05 se da una retroalimentación equivocada –

-4

poco más de información: https://ziaahmedshaikh.wordpress.com/2016/02/17/how-to-use-between-keyword-in-linq-eentity-framework

Usted puede utilizar DateTime variable y & & palabra clave para filtrar los registros.

+3

¡Bienvenido a Stackoverflow! Si bien este enlace puede responder a la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace de referencia. Las respuestas de solo enlace pueden dejar de ser válidas si la página vinculada cambia. – Max

Cuestiones relacionadas