40 messaggi dal 10 maggio 2005
Ciao,

vorrei cominciare a lavorare con entity framework, sto partendo con una finestra wpf collegata ad una entity. La entity è mappata ad una tabella di sql. Il campo CODICE è una chiave primaria (non surrogata), la proprietà Entity key è impostata a true.

Il primo problema che ho incontrato è che inserendo un record con il campo CODICE già esistente, la mia applicazione non si accorge di niente e, ovviamente, va in errore al momento della chiamata Context.SaveChanges().

Qualcuno sa come si evita l'inserimento di duplicati?

Grazie!
Teoricamente non è un compito che spetta allo strato di accesso ai dati. In un'applicazione n-tier è lo strato intermedio di business che valida queste logiche, controllando ciò che quello di presentazione richiede.
Se questo non l'hai previsto, puoi o affidarti al db e quindi gestire l'errore quando chiami SaveChanges oppure magari sovrascrivere i metodi On[nomeProprietà]Changing partial che sono definiti nella classe autogenerata.
Io comunque ti consiglio lo strato business intermedio.

Ciao

Il mio blog
Homepage
40 messaggi dal 10 maggio 2005
Avevo iniziato proprio con On[nomeProprietà]Changing partial, ma mi sono fermato subito, perchè non so come si accede alla EntitySet, che mi servirebbe per controllarele se le altre istanze della entity hanno già lo stesso valore. Così ho desistito. C'è davvero un modo?
Modificato da federico.caselli il 16 dicembre 2008 09.19 -
40 messaggi dal 10 maggio 2005
Ma il metodo On[nomeProprietà]Changing non è nello strato intermedio di business? Il compito di EF non è proprio quello di generare le classi di business?

Il problema è che non so cosa scriverci dentro...
No no, entity framework è lo strato di accesso ai dati, non è business. Poi se vuoi considerare le entità di entity framework come il tuo domain model indipendente dalla persistenza, puoi anche farlo, ma comunque le logiche di validazione di cui tu hai bisogno andrebbero messe su uno strato che sta sopra

Ciao

Il mio blog
Homepage
40 messaggi dal 10 maggio 2005
Ah.

Me ne vado a studiare e torno più preparato

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.