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.
- Eccovi LINQ to reflection
- #64 - Salvare una stringa xml in un file con LINQ To XML
- Sorgenti custom per MediaElement di WPF
- #21 - Usare RelativeSource con il Binding di WPF
- #31 - FallbackValue e NullToUnsetConverter per il Binding di WPF
- Speciale Binding di Windows Presentation Foundation
- Aggiornamento dei dati con LINQ to SQL
- Il mio primo libro in inglese: Entity Framework In Action
- Riutilizzare porzioni di espressioni LINQ
- #942 - Creare feed RSS e Atom con il .NET Framework 3.5
- ADO.NET Entity Framework e le colonne calcolate
- Tracing in Windows Communication Foundation
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.





Stampa
Download 


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!
