c# asp.net linq ms-access

c# - Página de LINQ asp.net contra MS Access.



ms-access (2)

Tengo una página de ASP.Net que utiliza ADO para consultar la base de datos de acceso de MS y como ejercicio de aprendizaje me gustaría incorporar LINQ. Tengo una tabla simple llamada Quotes.

Los campos son: QuoteID, QuoteDescription, QuoteAuthor, QuoteDate. Me gustaría ejecutar consultas simples como, "Dame todas las comillas después de 1995".

Cómo incorporaría LINQ en este sitio ASP.Net (C #)

Básicamente, mi pregunta es si LINQ funciona para MS Access.


LINQ to SQL no admite Access (es decir, no hay acceso / proveedor de Jet para LINQ), pero puede consultar un DataSet con LINQ. Esto significa que usted llena su DataSet con cualquier información posible de su base de datos que pueda necesitar en sus resultados, y luego filtra por el lado del cliente. Después de tener un DataSet tipeado y Fill () con un TableAdapter, haga algo como esto:

var year = 1995; // you can pass the year into a method so you can filter on any year var results = from row in dsQuotes where row.QuoteDate > year select row;

Tendrás que decidir si esto vale la pena. Tendría que completar su DataSet con todas las comillas, luego usar LINQ para filtrar solo aquellas citas posteriores a 1995. Para una pequeña cantidad de datos, claro, ¿por qué no? Pero para una gran cantidad de datos, deberá asegurarse de que no sean demasiado lentos.

Sin embargo, si usa un DataSet, puede escribir consultas personalizadas que se conviertan en nuevos métodos TableAdapter. De modo que puede colocar el SQL correcto para su consulta en un método FillByYear () en su TableAdapter y usarlo para llenar su DataTable con tipeo. De esta forma, solo obtendrá los datos que necesita.

Si sigue esta ruta, recuerde que Access / Jet usa parámetros posicionales, parámetros no nombrados. Entonces, en lugar de

SELECT * FROM Quotes WHERE Year(QuoteDate) > @Year

usarías algo como esto:

SELECT * FROM Quotes WHERE Year(QuoteDate) > ?


No creo que LINQ to SQL sea compatible con Access. Sin embargo, si su tabla es lo suficientemente pequeña como para caber en la memoria, LINQ to DataSet le permitirá consultar tablas de datos, etc. con bastante facilidad, especialmente conjuntos de datos fuertemente tipados.