2010-05-04 16 views
6

Mi chiedevo quale sia la raccomandazione generale per Entity Framework in termini di convalida dei dati. Sono relativamente nuovo a EF, ma sembra che ci siano due approcci principali per la convalida dei dati.- Annotazioni dati vs InChanging in Entity Framework 4

Il primo è creare una classe parziale per il modello, quindi eseguire convalide di dati e aggiornare una raccolta di violazioni delle regole. Questo è delineato in http://msdn.microsoft.com/en-us/library/cc716747.aspx

L'altro è utilizzare le annotazioni di dati e fare in modo che le annotazioni eseguano la convalida dei dati. Scott Guthrie lo spiega sul suo blog allo http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx.

Mi chiedevo quali sono i vantaggi di uno sull'altro. Sembra che le annotazioni dei dati sarebbero il meccanismo preferito, specialmente quando ti sposti ai Servizi RIA, ma voglio assicurarmi che non manchi qualcosa. Naturalmente, nulla impedisce l'utilizzo di entrambi.

Grazie

John

risposta

1

ho utilizzato DataAnnotations utilizzando MVC 2 e funziona benissimo. Non ho provato il partial su un oggetto entity per la validazione, ma vedo i suoi usi. Fondamentalmente se creo una classe parziale su un oggetto entità lo uso per dati predefiniti come un identificatore GUID. o Crea data o Data di modifica. Suppongo che sarebbe utile aggiungere validazioni nella classe parziale, magari per alcune convalide complesse che devono avvenire nel livello entità, ma anche quelle convalide potrebbero essere eseguite in un validatore personalizzato. Se si utilizza un sito Web MVC, utilizzerei personalmente le annotazioni dei dati.

+0

Cosa ne pensi della questione sollevata da Brad Wilson qui? Immagino di dover lottare con le Annotazioni Dato poiché sembrano troppe magie :) http://bradwilson.typepad.com/blog/2010/01/input-validation-vs-model-validation-in-aspnet- mvc.html –

+0

Innanzitutto vorrei ringraziarvi per aver segnalato questo articolo. E 'stato bello. Questo è un articolo informativo su come e perché la modifica alla progettazione dalla convalida dell'input è stata modificata in MVC1.0 in Model Validation. I suoi punti sono tutti validi e dovrebbero essere considerati durante la fase di progettazione. Infine, le annotazioni dei dati non sono magiche, sono semplicemente attributi di proprietà applicati che costringono il codice di convalida a essere eseguito quando si esegue il binding al modello. –

+0

Questo legame spiega quello che speravo di fare .... http://daniel.wertheim.se/2009/11/18/entity-framework-4-part-5-validation-using-dataannotations/ Integrare le annotazioni di dati con un livello di servizio. Stavo avendo alcuni problemi perché sto sviluppando per Azure e il framework 3.5 non supporta Validator.TryValidateObject. DOH! Grazie –