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.


