Se la vostra logica è complessa ed avete bisogno di usare una SP per la persistenza, potete specificare tre azioni in grado di essere invocate in maniera automatica all?interno del DataContext. Questo è possibile grazie ai Partial Method che possono essere modificati poichè il DataContext è contenuto in una partial class.
La forma dei metodi è UpdateNomeEntity per l'aggiornamento, DeleteNomeEntity per la cancellazione e InsertNomeEntity per l'inserimento. Di seguito un esempio che esegue una SP in concomitanza con l'aggiornamento dell'Entity Product mappata sull'omonima tabella del database Northwind:
public partial class Northwind : DataContext { public partial void UpdateProduct(Product original, Product current) { if (original.UnitsInStock != current.UnitsInStock) { int rowCount = this.ExecuteCommand("exec UpdateProductStock @id={0}, @originalUnits={1}, @decrement={2}", original.ProductID, original.UnitsInStock, (original.UnitsInStock - current.UnitsInStock) ); if (rowCount < 1) throw new Exception("Error updating"); } } }
E' possibile eseguire codice arbitrario e controllare, come nell'esempio, che l'operazione vada a buon fine, scatenando un'eccezione in caso contrario.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.