Entity Framework es un conjunto de tecnologías de ADO.NET que posibilita el desarrollo de aplicaciones de software orientadas a datos, que permite a los programadores elevar el nivel de abstracción cuando se trabaja con datos (menos código de acceso, menos mantenimiento, estructura más manejable, y persistencia). Para ello, Entity Framework (EF a partir de ahora), define objetos a partir del modelo de datos.
Cuanto mayor sea nuestra base de datos y más datos, tablas e interconexiones entre ellas, más importante será mantener una buena política en cuanto al uso del EF, para que su eficiencia y rendimiento sean óptimos. Durante las próximas semanas enumeraré algunas buenas prácticas que todos deberíamos tener en cuenta cuando generemos nuestro Entity.
Cadenas de conexión
Cuando se crean los
Object Queries se recupera la cadena de conexión del archivo .config, sin embargo, hay otra forma de suministrársela: cuando se instancia el
ObjectContext (en la propiedad ConnectionString del objeto EntityConnection).
Ubicación de los metadatos y asignaciones del EDM Los archivos de metadatos y asignaciones del EDM, frecuentemente se desarrollan ir en el mismo directorio del archivo ejecutable de la aplicación, sin embargo, para mejorar el rendimiento, podemos incluidos la solución. Para ello:
1) Abre el proyecto con el EF
2) Abrir el EDMX.
3) Hacer click en el fondo, y abrir la ventana de propiedades.
4) Cambiar la propiedad Procesamiento de artefactos de metadatos (Metadata Artifact Processing) a Incrustado en el ensamblado de salida (Embed in Output Assemply).
Los recursos embebidos se especifican en la propiedad Metadata del connectionString, de la siguiente forma:
Metadata=res://<assemblyFullName>/<resourceName>
Además, es mejor no usar caracteres comodín (*) en la propiedad
assemblyFullName para evitar que el EF haga una búsqueda de los recursos en todos los lugares especificados.
Debajo, en un extracto de un
web.config,
se puede ver un ejemplo del parámetro
connectionString, con
la propiedad
metadata, en la que se especifica el ensamblado con nombre
OSK.Core.EntityModel.dll
<connectionStrings>
<add name="OSKEntities" connectionString="metadata=res://OSK.Core.EntityModel,Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null/;
provider=System.Data.SqlClient; provider connection string="
Data Source=DEIMOS;Initial Catalog=OSK;
Integrated Security=True;MultipleActiveResultSets=True""
providerName="System.Data.EntityClient" />
</connectionStrings>
Via: Connection Strings (Entity Framework)