Ktoś wie, jak napisać LINQ do instrukcji SQL, aby zwrócić każdy n-ty wiersz z tabeli? Potrzebuję uzyskać tytuł przedmiotu na górze każdej strony w siatce stronicowanej z powrotem do szybkiego skanowania użytkownika. Więc gdybym chciał pierwszy rekord, a następnie co 3 jeden po tym, z następującymi nazwami:LINQ do SQL Każdy N wiersz z tabeli
Amy, Eric, Jason, Joe, John Josh, Maribel, Paul Steve, Tom
Dostałbym Amy, Joe, Maribel i Tom.
Podejrzewam, że można to zrobić ... LINQ do instrukcji SQL już wywołują funkcję SQL ROW_NUMBER() w połączeniu z sortowaniem i stronicowaniem. Po prostu nie wiem, jak odzyskać każdy n-ty przedmiot. Oświadczenie SQL byłoby czymś w rodzaju WHERE ROW_NUMBER MOD 3 = 0
, ale nie znam instrukcji LINQ do użycia w celu uzyskania odpowiedniego kodu SQL.
ja nie wiem, czy można to zrobić z wygenerowanym LINQ to SQL sql – hunter
tam naprawdę (Nie, naprawdę) nie wydaje się być sposobem na znalezienie rozwiązania podstawowego przyjętej odpowiedzi przy użyciu czystego LINQ do SQL. Użyłem kilku alternatyw. 1) Utwórz widok, który zmaterializuje oryginalną tabelę plus numer wiersza za pomocą żądanego sortowania, a następnie użyj LINQ do SQL, aby wysłać zapytanie do tego widoku, gdzie numer wiersza to mod zero dla n w "weź co n wierszy". 2) Użyj zaakceptowanej odpowiedzi i ExecuteQuery. Preferuję pierwsze rozwiązanie, jeśli wiem, że sortowanie wstępne powinno zawsze być takie samo. –