Pregunta

Soy un antiguo programador clásico de ASP y, a veces, programador de PHP que escribe mi primera aplicación ASP.NET. Me encantan las funciones ADO.NET muy mejoradas, pero siento la necesidad de escribir una clase de base de datos. En parte, quiero consolidar el código que realmente interactúa con la base de datos, y en parte quiero reducir lo que se siente como repetición.

Una clase de base de datos simple no es difícil de hacer, pero estoy usando consultas parametrizadas como una de mis medidas de seguridad. Estoy luchando con cómo incorporar esto en una clase. Escribí una función para devolver el tipo de datos de una columna en la base de datos pasando la tabla y el nombre de la columna, pero no se me ocurre una forma sólida de obtener el nombre de la tabla y la columna a partir de la consulta SQL.

Mi diseño para la clase era tener una función Query () para seleccionar y una función Execute () para insertar / actualizar / eliminar. (No se opuso a tener más funciones públicas, pero no quería adelantarme). Ambas funciones toman una cadena SQL y una SortedList para los parámetros. Podría ser posible obtener el nombre de la columna encontrando el nombre del parámetro en la cadena SQL y mirando delante del signo igual. Del mismo modo, debería ser bastante simple obtener el nombre de la tabla cuando la consulta se inserta, actualiza o elimina, porque solo trabaja con una tabla a la vez. La gran preocupación es la selección, porque podría haber una o más combinaciones, selecciones internas, etc.

¿Me dirijo en la dirección equivocada? ¿Algo en lo que no esté pensando podría hacerme la vida más fácil o más difícil? ¿Alguien escribió una clase para esto en algún idioma que pudiera ofrecer algún consejo?

¿Fue útil?

Solución

No reinventes la rueda. Mire nHibernate o LINQToSQL (o LINQToEntities ) para sus necesidades de ORM.

Otros consejos

Apoyaría la llamada para encontrar una rueda probada y comprobada que funcione para usted, especialmente si esta es su primera incursión en aspnet ... habrá muchas otras cosas que lo mantendrán ocupado.

Agregaría una sugerencia para SubSonic , que quizás sea un poco más liviana que nHibernate, pero realmente depende de la naturaleza de su proyecto, ambas son excelentes herramientas, y ambas me han ahorrado meses de trabajo en los últimos años.

Creo que, dado que esta es su primera experiencia en ASP.NET, le aconsejamos que estudie Linq to SQL. Haga algunos tutoriales para tener una idea de cómo funciona antes de intentar codificar cualquier consulta de Linq.

Las únicas razones por las que se me ocurre NO utilizar Linq to SQL en su caso serían si no está utilizando SQL Server (o si necesita admitir otras bases de datos ahora o en el futuro), o no puede usar el tiempo de ejecución de .NET 3.5 por alguna razón.

Buena suerte

Me suena como su "clase de base de datos simple" está ocultando demasiados detalles de las clases que necesitan usarlo.

He escrito clases que contienen un SqlCeEngine y exponen métodos como " LookupDescription (String Code) " ... Creo que ese tipo de diseño es algo que deberías estudiar. Y, considere buscar en LINQ. Tiene mucho que ofrecer.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top