Est-ce les mauvaises pratiques pour permettre à des champs NULL à une table DB afin de simplifier le modèle de liaison de l'Ajax?

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

Question

ici et here pour obtenir un aperçu rapide de mon problème et de voir exactement ce que je veux dire quand je dis modèle de liaison de l'Ajax.

Serait-ce une mauvaise idée de faire les champs clés étrangers annulable afin de permettre modèle de liaison de javascript?

Par exemple, nous voulons lier à un objet Personne lors d'un appel ajax à ... (La classe personne est créée à partir du Entity Framework)

public ActionResult Create(Person personToCreate)
{
    //Create person here
}

Si le Person avait un objet Pet qui était une clé étrangère dans la db, vous ne pouvez pas passer l'objet Pet ainsi que les autres données de l'appel ajax. Donc, à moins que le Pet est annulable dans la DB, la liaison à Person ne fonctionnerait pas.

Alors, ce que je veux savoir est ... pour faire le modèle de liaison, doit / puis-je les champs null db Je ne peux pas passer de javascript? Ou dois-je faire Modèle personnalisé Binder et se lient à une version « Flatter » de l'objet afin de suivre les meilleures pratiques? exemple de la version plate de l'objet:

public class SimplePerson() {
   private string firstName;
   private string lastName;
   private string petName;
}

La raison pour laquelle je pose cette question parce que beaucoup de mes classes Entity Framework créées contiennent des clés étrangères, ce qui signifie que je vais avoir besoin de créer un double plat de presque toutes les classes, et il semble aller contre l'ensemble DRY principal .

Était-ce utile?

La solution

Je lis sur ce que vous lié et posté, je ne peux pas vraiment penser à une bonne solution sur le dessus de ma tête, mais le concept de changer votre base de données sous-jacente à cause d'AJAX me fait mal à l'aise. Je sais que ce n'est pas une grande réponse, je suis aux prises avec plusieurs problèmes de conception EF droit me maintenant, et il y a eu plusieurs moments où j'ai été tenté de modifier la base de données pour le bien du modèle, mais cela qui est venu toujours Retour à me mordre dans le passé.

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