2012-08-27 19 views
7

Jak używać MIĘDZY słowem kluczowym w Entity Framework?Jak używać słowa kluczowe BETWEEN w Entity Framework?

To jest mój kwerendy SQL

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

To jest mój kod Entity Framework.

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

wartość 12,59 może być zmienna

Odpowiedz

12

Można użyć >= i <= z DateTime uzyskać zasięg.

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

Czy kontrole nie powinny być odwrócone? p.StartTime <= yourTime && (p.StartTime + duration)> = yourtime); ? –

+0

@ YngveB.Nilsen, tak, pomieszałem go podczas wpisywania odpowiedzi – Habib

+0

Dzięki Guys i innej rzeczy, w zasadzie StartTime jest przechowywany jako DECIMAL, a czas trwania zapisany jako INT w SQL, Ponieważ zajmują się czasem, istnieje jakikolwiek łatwy sposób na pozbycie się wartości jak 12.75 dla przykładów, STAR czas = 12,45 duration = 30 // 30 min START CZAS TRWANIA +/10 = 12,75 jeśli MyTime jest 11.05 daje złą opinię –

-4

trochę więcej informacji: https://ziaahmedshaikh.wordpress.com/2016/02/17/how-to-use-between-keyword-in-linq-eentity-framework

Można użyć zmiennej DateTime i & & słowo kluczowe aby filtrować rekordy.

+3

Witamy w Stackoverflow! Chociaż ten link może odpowiedzieć na pytanie, lepiej umieścić tutaj istotne części odpowiedzi i podać odsyłacz do odniesienia. Odpowiedzi dotyczące linków mogą stać się nieprawidłowe, jeśli strona z linkami się zmieni. – Max

Powiązane problemy