É más práticas para permitir campos nulos para uma tabela DB, a fim de simplificar o modelo de ligação do Ajax?
-
16-09-2019 - |
Pergunta
Por favor, leia aqui e here para ter uma visão geral do meu problema e ver exatamente o que eu quero dizer quando digo Model Binding do Ajax.
seria uma má idéia para tornar os campos de chave estrangeira anulável, a fim de permitir Model Binding de javascript?
Por exemplo, queremos vincular a um objeto Person durante uma chamada ajax para ... (A classe Person é criado a partir o Entity Framework)
public ActionResult Create(Person personToCreate)
{
//Create person here
}
Se o Person
tinha um objeto Pet
que era uma chave estrangeira no db, você não pode passar o objeto Pet
juntamente com os outros dados da chamada ajax. Então, a menos que o Pet
é anulável no DB, a ligação a Person
não iria funcionar.
Então, o que eu quero saber é ..., a fim de fazer Model Binding, deve / pode I nulo os campos db não posso passar de javascript? Ou eu tenho de fazer uma personalizado modelo Binder e se ligam a uma versão "mais plana" do objeto, a fim de seguir as melhores práticas? exemplo de versão mais plana do objeto:
public class SimplePerson() {
private string firstName;
private string lastName;
private string petName;
}
A razão que eu peço é porque muito do meu Entity Framework criado classes contêm chaves estrangeiras, o que significa que vai precisar para criar uma duplicata plana de quase todas as classes, e parece ir contra toda a DRY diretor.
Solução
Eu li sobre o que você ligada e postou, eu realmente não posso pensar em uma solução boa em cima da minha cabeça, mas todo o conceito de mudar o seu banco de dados subjacente para o bem de AJAX faz-me desconfortável. Eu sei que não é uma grande resposta, eu estou lutando com vários problemas de design EF agora mesmo, e tem havido várias vezes quando eu estive tentado a modificar o banco de dados por causa do modelo, mas fazer isso sempre vem volta a morder-me no passado.