7 messaggi dal 12 maggio 2004
Salve a tutti,
mi sto cominciando ad allenare con questo fantastico "ORM" e come spesso capita alla teoria va applicata una marea di pratica.

Vorrei quindi condividere un problema che mi sta facendo tribolare un bel po'.

Ho una semplice tabella (produttori) che ha un ID ed un Valore; l'id è una pk autoincrementale (int); è insomma una semplice tabella elenco.

Ho provato a fare un update gestendo il conflictexception del datacontext (molto utile) e fin li tutto bene. Ho però escluso un caso.

Supponiamo di avere un produttore "ASUSE" e dato che mi sono accorto che è scritto male lo vado a modificare con "ASUS". Se nel frattempo qualcuno lo avesse già modificato, quando vado a fare il submitchanges mi rileva il conflitto che poi vado a gestite. Supponiamo che invece un'altro utente inserisca un nuovo elemento di nome "ASUS" perchè pensa che "ASUSE" è un'altra cosa. In questo caso durante l'update, nella stessa transazione, dovrei prima controllare se esiste un valore equivalente e poi fare l'update.
Questo sarebbe risolvibile andando ad eseguire l'override del metodo update ed assegnargli una store procedure, ma volevo tentare di fare tutto cio utilizzando la potenzialità di questo nuovo framework.

Grazie 1000,
Luca.
E' più corretto identificare Linq to Sql come un Data access layer (DAL) e quindi le logiche che te vuoi gestire, essendo più di business, non andrebbero fatte a questo livello e neanche a livello di stored procedure.
Di solito infatti si mette uno strato superiore, indipendente dal DAL, che effettua per esempio logiche di questo tipo, generando eccezioni e variando update/insert.
Se però vuoi fare una cosa semplice, noterai che il designer all'interno della classe DataContext, definisce dei partial methods di nome [Operazione][Entità], per esempio InsertProduct, che tu puoi definire e usare.
Guarda inoltre qua
http://msdn.microsoft.com/en-us/library/bb546176.aspx

Ciao

Il mio blog
Homepage

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.