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.
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
¿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
Usaría una biblioteca de clases separada. – Jeff