Comenzando con todo esto de MVVM, estaba siguiendo este post by Josh Smith que habla de un enfoque de validación al usar MVVM. El ejemplo es simple, y comencé a preguntarme cómo usarlo en mi propia aplicación.¿Dónde debo realizar una comprobación para ver si ya existe un valor en la base de datos al realizar la validación en MVVM utilizando IDataErrorInfo?
Tengo, en mi BLL, una clase BookInfo
que implementa IDataErrorInfo para informar valores no válidos como "la fecha publicada no puede estar en el futuro" o "el número de páginas no puede ser negativo". Entonces mi AddBookViewModel
verificaría el estado del recién creado BookInfo
, verificará que existan errores, y el AddBookView
mostrará un blob rojo al lado del TextBox apropiado. Eso es sencillo, como en el ejemplo de la publicación.
Ahora mi clase BookInfo
también tiene una lista de ID de autor. Al agregar un nuevo BookInfo a mi base de datos, necesito verificar si esos ID de autor ya existen.
¿Debería hacerse esta verificación en mi clase BookInfo
? Si es así, entonces tendría que pasar el objeto AuthorManager
de mi BLL al constructor BookInfo
, ya que el primero contendría métodos como CheckIfExists(int authorID)
.
¿Es este el enfoque recomendado? ¿Qué pasa si hay muchos registros en el DB? ¿La verificación dinámica afectaría el rendimiento?
Por otro lado, parecería un poco complicado realizar algunos controles en la clase BookInfo
y en otros lugares ... especialmente cuando todos esos controles se pueden categorizar en el mismo grupo ... es decir. asegurándose de que un objeto BookInfo
recién creado sea válido. O tal vez estoy equivocado ya que realmente no tengo experiencia para hacer un juicio adecuado.
¿Alguna orientación?
Bien, gracias chicos. – ForeverLearnNeverMaster