Es que las malas prácticas que permitan a los campos nulos a una tabla de base de datos con el fin de simplificar el modelo de unión del Ajax?

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

Pregunta

Por favor, lea aquí y here para obtener una visión rápida de mi problema y ver exactamente lo que quiero decir cuando digo Encuadernación Modelo del Ajax.

¿Sería una mala idea para hacer los campos de clave externa anulable con el fin de permitir la unión Modelo de JavaScript?

Por ejemplo, queremos que se unen a un objeto persona durante una llamada AJAX a ... (La clase de persona es creada a partir Entity Framework)

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

Si el Person tenía un objeto Pet que era una clave externa en el PP, no se puede pasar el objeto Pet junto con los otros datos de la llamada AJAX. Así que a menos que el Pet es anulable en el PP, la unión a Person no funcionaría.

Así que lo que quiero saber es ... con el fin de hacer modelo de unión, debería / puedo anular los campos db no puedo pasar de JavaScript? O tengo que hacer una Carpeta Modelo costumbre y se unen a una versión más "plano" del objeto con el fin de seguir las mejores prácticas? ejemplo de versión más plano del objeto:

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

La razón que pido esto es porque muchos de mis Entity Framework clases creadas contiene las claves externas, lo que significa que tendrá que crear un duplicado plana de casi todas las clases, y parece ir en contra de la totalidad DRY director .

¿Fue útil?

Solución

He leído más de lo que se ha vinculado y publicado, no puedo pensar en una buena solución de la parte superior de mi cabeza, pero todo el concepto de cambiar la base de datos subyacente en aras de AJAX me hace incómodo. Yo sé que no es una gran respuesta, estoy luchando con varios problemas de diseño de EF en este momento a mí mismo, y ha habido varias ocasiones en las que he tenido la tentación de modificar la base de datos por el bien del modelo, pero haciendo eso siempre ha venido volver a morderme en el pasado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top