Entity Framework - Enum Support
En Entity Framework, esta caracteristica le permitira definir una propiedad en una class de dominio que es un tipo de enumeracion y asignarla a la a una columna de la base de data de tipo entero. Entity Framework luego convertira el valor de la base de data hacia y desde la enumeracion apropiada a medida que consulta y guarda data.
-
Los tipos enumerados tienen todo tipo de ventajas cuando trabajan con propiedades que tienen un numero fijo de respuestas.
-
La seguridad y confiabilidad de una aplicacion aumentan cuando usa enumeraciones.
-
La enumeracion hace que sea mucho mas dificil para el usuario cometer errores, y los problemas como los ataques de inyeccion son inexistentes.
-
En Entity Framework, una enumeracion puede tener los tipos subyacentessiguiente ts -
- Byte
- Int16
- Int32
- Int64
- SByte
-
El tipo subyacente predeterminado de elementos de enumeracion es int.
-
De forma predeterminada, el primer enumerador es 0 y el valor de cada enumerador sucesivo aumenta en 1.
Echemos un vistazo al siguiente ejemplo en el que crearemos una entidad como disenador y luego agregaremos algunas propiedades.
Paso 1 : cree un nuevo proyecto desde la opcion de menu Archivo → Nuevo → Proyecto.
Paso 2 : en el panel izquierdo, seleccione la aplicacion de consola.
Paso 3 - Ingrese EFEnumDemo como el nombre del proyecto y haga clic en Aceptar.
Paso 4 - Haga clic derecho en el nombre del proyecto en Explorersoluciones y seleccione la opcion de menu Agregar → Nuevo elemento.
Paso 5 : seleccione Modelo de data de entidad ADO.NET en el panel Modelos.
Paso 6 - Ingrese EFEnumModel.edmx como nombre de archivo, luego haga clic en Agregar.
Paso 7 - En la pagina del Asistente de Entity Data Model , seleccione Plantilla de disenador EF vacia.
Paso 8 - Haga clic en Finalizar
Paso 9 - Luego haga clic con el boton derecho en la ventana del disenador y seleccione Agregar → Entidad.
El NoAparece una nueva entidad como se muestra en la siguiente imagen.
Paso 10 - Ingrese Departamento como nombre de entidad y DeptID como nombre de propiedad, deje el tipo de propiedad Int32 y haga clic seguro, ok.
Paso 11 : haga clic derecho en la entidad y seleccione Agregar nuevo → Propiedad escalar.
Paso 12 - Cambie el nombre de la nueva propiedad a DeptName.
Paso 13 - Cambie el tipo de la nueva propiedad a Int32 (por defecto, la nueva propiedad es de tipo String).
Paso 14 - Para cambiar el tipo, abra la ventana Propiedades y cambie la propiedad Tipo a Int32.
< source de data-srcsy="https://www.hebergementwebs.com/image/4f/4f6fe080ffc7cd1f1d656d5f3afbd544.webp/entity-framework-prise-en-charge-d-enumeration-24.webp" type = "image/webp" media = "(min-width: 800px) ">
Paso 15 : en Entity Framework Designer, haga clic en Haga clic con el boton derecho en la propiedad Nombre, seleccione Convertir en enumeracion.
Paso 16 : en el cuadro de dialogo Agregar tipo de enumeracion, ingrese DepartmentNames para el nombre del tipo de enumeracion, cambie el tipo subyacente a Int32, luego agregue los siguientes miembros al tipo: Fisica, Quimica, Ciencias de la Computacion y Economia.
Paso 17 : haga clic en Aceptar.
Si cambia a en la ventana del Explorador de modelos, vera que el tipo tambien se ha agregado al nodo Enum Tipos.
Generemos una base de data a partir del modelo siguiendo todos los pasos mencionados en el capitulo sobre el enfoque Model First.
Paso 1 : haga clic con el boton derecho en la superficie de Entity Designer y seleccione Generar base de data de la plantilla.
Aparece el cuadro de dialogo Elija su conexion de data del Asistente de generacion de bases de data.
Paso 2 : haga clic en el boton Nueva conexion.
Paso 3 - Ingrese el nombre del servidor y EnumDemo para la base de data y haga clic en Aceptar.
Paso 4 : aparecera un cuadro de dialogo que le preguntara si desea crear una nueva base de data. , haga clic en Si.
Paso 5 : haga clic en Siguiente y el Asistente para la creacion de bases de data genera un lenguaje de definicion de data (DDL) para crear una base de data. Ahora haga clic en Finalizar.
Paso 6 : haga clic derecho en T-SQL Editor y seleccione Ejecutar.
Paso 7 : para ver el esquema generado, haga clic con el boton derecho en el nombre de la base de data en el Explorador de objetos de SQL Server y seleccione Actualizar.
Vera la tabla Departamentos en la base de data.
Echemos un vistazo al siguiente ejemplo en el que los nuevos departamentos se oponen al contexto que se agrega y se guarda. Y luego recuperamos el departamento de TI.
class Program {static void Main (string args) {using (var context = new EFEnumModelContainer ()) {context.Departments. Agregar (nuevo departamento {DeptNam e = DepartmentNames.Physics}); context.Departments.Add (nuevo departamento {DeptName = DepartmentNames.Computer}); context.Departments.Add (nuevo Departamento {DeptName = DepartmentNames.Chemistry}); context.Departments.Add (nuevo departamento {DeptName = DepartmentNames.Economics}); context.SaveChanges var departamento = (de d en context.Departments donde d.DeptName == DepartmentNames.Computer select d) .FirstOrDefault Console.WriteLine ( "ID de departamento: {0}, Nombre de departamento: {1} ", department.DeptID, department.DeptName); Console.ReadKey }}}
Cuando se ejecuta el codigo anterior, recibira el siguiente resultado:
ID de servicio: 2, nombre de servicio: computadora
Le recomendamos que ejecute el ejemplo anterior paso a paso para unae mejor comprension.