9

Parece que la mayor parte del foco con MVC3 y EF4.1 es de alrededor de "código de primera" - Parece que no puedo encontrar ningún ejemplo o tutoriales que cumplan los siguientes criterios:MVC3 y EF Data first: ¿cuáles son las mejores prácticas?

  • utiliza una base de datos de SQL Server existente
  • tiene proyectos separados para web & acceso a datos (vamos a tener múltiples aplicaciones web que comparten las mismas clases de acceso a datos)
  • recomendaciones para la validación ¿existe

un ejemplo o un tutorial tales? ¿Hay alguna "mejores prácticas" documentadas sobre cómo lograr esto o una justificación para NO tener una solución estructurada de esta manera?

Respuesta

5

Es un escenario bastante común y depende si desea usar el archivo EDMX para la asignación o si desea que la asignación esté definida en el código (como el código primero).

Ambos escenarios se puede hacer como primera base de datos

  • Va a crear EDMX de base de datos existente con estructura en herramientas de EF en Visual Studio y que va a utilizar generador de plantilla DbContext T4 para obtener clases POCO y DbContext clase derivada
  • va a descargar EF Power Tools CTP y que va a utilizar su función de ingeniería inversa para generar código de mapeo, clases POCO y el contexto para que

Ninguno de estos enfoques se sumarán annotatio datos ns. Las anotaciones de datos en las entidades no se deben usar para la validación del cliente (es una mala práctica) a menos que esté haciendo aplicaciones muy simples. Por lo general, sus puntos de vista tienen expectativas más avanzadas y la validación a la vista puede ser diferente a la de la entidad. Por ejemplo, insertar vista y actualizar vista puede necesitar validaciones diferentes y no es posible realizarlo con un solo conjunto de anotación de datos en la entidad. Por eso, debe mover las anotaciones de datos para la validación a modelos de vista especializados y transformar sus entidades para ver los modelos y viceversa (puede usar AutoMapper para simplificar esto).

De todos modos es possible to add data annotations to generated classes a través de clases de compañeros, pero como se mencionó, no es una buena práctica.

+0

Ambos están de acuerdo y en desacuerdo sobre las anotaciones de datos de la entidad. Para restricciones simples tales como longitud y nulabilidad, creo que las anotaciones de datos en clases de entidad son aceptables. De lo contrario, ha creado un modelo de dominio anémico (http://martinfowler.com/bliki/AnemicDomainModel.html), un anti-patrón. De acuerdo, los modelos de vista tienen escenarios empresariales más complejos y deben/tendrán requisitos de validación más complejos. – Jeff

+0

¿El edmx es parte del proyecto web, o en su propia biblioteca de clases? He actualizado la pregunta para eliminar la anotación para la validación, ya que me gustaría evitar el modelo de dominio anémico. – chris

+0

Usaría una biblioteca de clases separada. – Jeff

Cuestiones relacionadas