Si je dois récupérer un objet à partir d'un modèle de liaison personnalisé doit le liant interagir avec la couche de service, la couche de dépôt ou ...?

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

Question

Si j'ai une classe semblable à ceci:

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

Quand je crée un modèle de liaison personnalisé, le message de ma forme ne sera pas l'envoi d'un animal de compagnie, il enverrait des données comme ceci: prenom: « myFirstName » LASTNAME: « myLastName » mypet: « myPetsName »

Depuis le nom de l'animal est transmis, et non l'objet réel Pet, l'objet Pet doit être récupéré à partir du modèle de liaison.

Ma question est, si le modèle de liaison être en interaction avec la couche de service, la couche de dépôt, ou doit-il être même récupérer les animaux? Le problème avec la couche de service est que je ne semble pas avoir accès à ModelState lors de l'initialisation du service: ((this.ModelState) me donne une erreur)

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

Si j'ai besoin le liant modèle pour créer un objet Personne, le Pet devrait être attribué en quelque sorte ... comment suis-je censé faire?

Était-ce utile?

La solution

Ce que je fais est d'utiliser un modèle vue / présentation au lieu de se lier aux objets métier. Rappelez-vous que vos utilisateurs peuvent entrer des valeurs non valides, et vous aurez besoin de réafficher ces valeurs non valides à l'utilisateur lorsque les invitant à corriger leurs erreurs. Mais les objets de votre entreprise « réelle » ne sera probablement pas accepter des valeurs non valides. Ainsi, le modèle de vue doit permettre une entrée d'utilisateur, même saisir les objets métier n'accepteront pas.

Cela rend la liaison facile. Vous n'avez pas besoin de frapper un référentiel pour lier, uniquement lorsque la mise à jour l'objet d'affaires avec (valide) entrée utilisateur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top