Si necesito recuperar un objeto de un ligante modelo personalizado debe ligante interactuar con la capa de servicio, la capa de repositorio, o ...?

StackOverflow https://stackoverflow.com/questions/1119928

Pregunta

Si tengo una clase similar a esto:

public class Person
{
    public string firstName { get; set; }
    public string lastName { get; set; }
    public Pet myPet { get; set; }
}

Cuando creo un modelo personalizado aglutinante, el Post de mi forma no enviará en un animal doméstico, sería enviar datos como estos: nombre: "myFirstName" Apellido: "myLastName" mypet: "myPetsName"

Puesto que el nombre de la mascota se pasa en, y no el objeto real del animal doméstico, el objeto del animal doméstico necesita ser recuperado desde el interior de la carpeta de modelo.

Mi pregunta es, si el modelo de ligante estén en contacto con la capa de servicio, la capa de repositorio, o debería ser, incluso recuperando la mascota? El problema con la capa de servicio es que no parecen tener acceso a ModelState al inicializar el servicio: ((this.ModelState) me da un error)

_petService = new PetService(new ModelStateWrapper(this.ModelState));

Si necesito el ligante modelo para crear un objeto de persona, entonces necesitaría la mascota a ser asignados de alguna manera ... ¿cómo voy a hacer esto?

¿Fue útil?

Solución

Lo que hago es usar un modelo de vista / presentación en lugar de unirse a los objetos de negocio. Recuerde que sus usuarios podrían introducir valores no válidos, y se necesita para volver a visualizar estos valores no válidos para el usuario cuando lo que les empuja a corregir sus errores. Pero su negocio "real" objetos probablemente no aceptará valores no válidos. Por lo que el modelo de vista debe permitir la intervención del usuario, incluso introducir los objetos de negocio no aceptarán.

Esto hace que la unión fácil. No es necesario para golpear un repositorio para unirse, sólo cuando la actualización del objeto de negocio con (válido) de entrada del usuario.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top