ORM
Un ORM (Object Relational Mapping) es un modelo de programación que permite mapear las estructuras de una base de datos relacional (SQL Server, Oracle, MySQL, etc.) sobre una estructura lógica de entidades con el objeto de simplificar y acelerar el desarrollo de nuestras aplicaciones. Los ORMs tienden a liberarnos de la escritura o generación manual de código SQL necesario para realizar las queries o consultas y gestionar la persistencia de datos en el RDBMS.
En C#, hay tres tipos principales de ORM: Code First, Database First y Model First.
- Code First: En este modo, se parte de las clases de nuestro programa orientado a objetos y se generan las tablas en la base de datos subyacente. Es decir, se crea el modelo de datos a partir del código fuente. Se suele utilizar si no se dispone de una base de datos existente o si se quiere crear una nueva aplicación desde cero. Entity Framework es un ejemplo de ORM que soporta Code First.
- Database First: En este modo, se parte de una base de datos preexistente con la que queremos trabajar. Es decir, tenemos la base de datos ya diseñada y probablemente con datos y lo que queremos es que el ORM se encargue de generar las clases necesarias y toda la “fontanería” interna para trabajar con ella. Se suele utilizar si aprovechamos una base de datos existente y queremos crear una nueva aplicación sobre ésta. Entity Framework también soporta Database First4.
- Model First: En este modo, se parte de un modelo de datos visual que se diseña mediante una herramienta gráfica. A partir de este modelo, se generan las clases necesarias y la base de datos subyacente. Se suele utilizar si se dispone de un modelo de datos visual y se quiere crear una nueva aplicación a partir de él. Entity Framework soporta Model First en .NET Framework, pero no en .NET Core.