Ist es schlechte Praktiken auf null Felder zu einer DB Tabelle zu ermöglichen, um Modell Bindung von Ajax zu vereinfachen?

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

Frage

Bitte lesen Sie hier und here einen schnellen Überblick über mein Problem zu bekommen und um genau zu sehen, was ich meine, wenn ich sage Modell von Ajax Bindung.

Wäre es eine schlechte Idee, die Fremdschlüsselfelder auf NULL festlegbare zu machen, um von Javascript zu ermöglichen Modell Bindung?

Zum Beispiel wollen wir während eines Ajax-Aufruf zu einer Person-Objekt binden ... (Die Person-Klasse aus dem Entity Framework erstellt wird)

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

Wenn die Person ein Pet Objekt hatten, dass ein Fremdschlüssel in der db war, kann man nicht das Pet Objekt übergibt zusammen mit den anderen Daten aus dem Ajax-Aufruf. Also, wenn die Pet im DB NULL-Werte zulässt, würde die Bindung an Person nicht funktionieren.

Also, was ich wissen will, ist ..., um Modell zu tun Bindung, sollte / kann ich die db Felder null kann ich nicht von Javascript passieren? Oder muss ich machen benutzerdefinierte Modell Binder und binden sich an eine „Flatter“ Version des Objekts, um best Practices zu folgen? Beispiel für flachere Version des Objekts:

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

Der Grund, warum ich frage dies, weil viele meiner Entity Framework erstellt Klassen Fremdschlüssel enthalten, was bedeutet, ich werde eine flache Kopie von fast allen dieser Klassen erstellen müssen, und es scheint, gegen das Ganze zu gehen DRY Haupt.

War es hilfreich?

Lösung

Ich habe gelesen, über das, was Sie verknüpft und geschrieben, kann ich nicht wirklich denke an eine gute Lösung aus der Spitze von meinem Kopf, aber das gesamte Konzept zugrunde liegende Datenbank zum Zwecke der AJAX ändern ist mir unangenehm. Ich weiß, das ist keine große Antwort, ich mich mit mehreren EF Design-Probleme zu kämpfen gerade jetzt, und es wurden mehrere Male, als ich habe die Datenbank zum Zwecke des Modells zu ändern versucht, aber dadurch, dass immer kommen in der Vergangenheit zu beißen mich zurück.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top