Utilizzare Stored Procedure per aggiornare i dati con LINQ To SQL

di Daniele Bochicchio, in LINQ,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi