Validación contra una entrada duplicada en ASP.NET 5 MVC 6

asp.net-core asp.net-core-mvc entity-framework-core

Pregunta

Usando asp.net 5, MVC 6, codifique primero, entidad Framework 7, beta 8.

Entiendo que cierta validación puede manejarse a través de anotaciones en las propiedades, por ejemplo, Tipo de datos, valores mínimos, máximos y los scripts de jquery, pero no estoy seguro de cómo la validación del código contra una entrada duplicada ingresa a la base de datos, como evitar una duplicación -mail reg en un formulario.

¿Hay alguna anotación que pueda usar para esto en mi propiedad de modelo o necesito codificar algo en mi controlador para manejar esta validación personalizada? ¿Alguien tiene un ejemplo para compartir?

Respuesta popular

EF7 no tiene ninguna magia para evitar valores duplicados en una tabla. La única forma de validar los duplicados es hacer un viaje de ida y vuelta a la base de datos. La mejor manera de hacerlo es con una restricción única. Esto puede expresarse como un índice único. Cualquier intento de insertar una entrada duplicada debe lanzar una excepción.

Dicho esto, puede configurar EF7 para que reconozca el índice único en su base de datos en su método OnConfiguring. Consulte Índices: Configuración de su modelo en los documentos de EF7.

        modelBuilder.Entity<User>()
            .Index(b => b.Email)
            .Unique();



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué