E 'cattive pratiche per consentire i campi nulli a una tabella DB per semplificare Modello Binding da Ajax?

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

Domanda

Si prega di leggere qui e here per ottenere una rapida panoramica del mio problema e per vedere esattamente cosa intendo quando dico Modello Binding da Ajax.

sarebbe una cattiva idea di produrre i campi chiave stranieri annullabile al fine di consentire per il modello vincolante da javascript?

Per esempio, vogliamo associare a un oggetto Person durante una chiamata Ajax per ... (La classe Person è creato dal Entity Framework)

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

Se il Person aveva un oggetto Pet che era una chiave esterna nel db, non è possibile passare l'oggetto Pet insieme agli altri dati della chiamata AJAX. Quindi, a meno che il Pet è nullable nel DB, legandosi a Person non avrebbe funzionato.

Quindi quello che voglio sapere è ... per fare Modello Binding, dovrebbe / posso nullo i campi db non riesco a passare da javascript? o devo fare un personalizzato Modello Binder e si legano a una versione più "piatto" dell'oggetto al fine di seguire le migliori pratiche? esempio di versione piatta dell'oggetto:

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

Il motivo che mi chiedo è perché un sacco di miei Entity Framework classi create contengono chiavi esterne, il che significa che sarà necessario creare un duplicato piatta della quasi totalità di tali classi, e sembra andare contro l'intera DRY principale.

È stato utile?

Soluzione

Ho letto su ciò che si è collegato e postato, non posso davvero pensare a una buona soluzione fuori dalla parte superiore della mia testa, ma l'intero concetto di cambiare il vostro database sottostante per il bene di AJAX mi mette a disagio. So che non è una grande risposta, sto lottando con diversi problemi di progettazione EF in questo momento me stesso, e ci sono stati diversi momenti in cui ho avuto la tentazione di modificare il database per il bene del modello, ma facendo che è sempre venuto torna a mordere me in passato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top