¿Alguien sabe cómo escribir una instrucción LINQ to SQL para devolver cada enésima fila de una tabla? Necesito obtener el título del artículo en la parte superior de cada página en una cuadrícula de datos paginada para un rápido escaneo del usuario. Así que si quería el primer registro, y luego cada 3 que después de eso, a partir de los siguientes nombres:LINQ to SQL cada enésima fila de la tabla
Amy, Eric, Jason, Joe, John, Josh, Maribel, Paul, Steve, Tom
Me gustaría tener a Amy, Joe, Maribel y Tom.
Sospecho que esto se puede hacer ... Las declaraciones LINQ a SQL ya invocan la función SQL ROW_NUMBER() junto con la ordenación y la paginación. Simplemente no sé cómo recuperar cada enésimo artículo. La instrucción SQL sería algo así como WHERE ROW_NUMBER MOD 3 = 0
, pero no sé la instrucción LINQ que se utilizará para obtener el SQL correcto.
No sé si esto se podría hacer con LINQ a SQL generada SQL – hunter
Realmente (No, en serio) no parece ser una forma de llegar a la solución básica de la respuesta aceptada utilizando LINQ puro a SQL. He usado un par de alternativas. 1) Cree una vista que materialice la tabla original más el número de fila usando la ordenación deseada, luego use LINQ to SQL para consultar esa vista donde el número de fila es mod cero para n en "tomar cada n filas". 2) Use la respuesta aceptada y ExecuteQuery. Prefiero la primera solución si sé que la clasificación previa a la modificación siempre debe ser la misma. –