9

Is SaveChanges() necessario con le importazioni di funzione (stored procedure)?È necessario SaveChanges() necessario con le importazioni di funzioni (stored procedure)?

Esempio:

void foo(Product product) 
{ 
    // AddProduct is a function import of a stored procedure 
    entities.AddProduct(product.Name, product.Price, product.Description); 

    entities.SaveChanges(); // Is this necessary? 
} 
+8

hai provato? :) – AndrewC

+0

Ho. In ogni caso, non sembra fare la differenza. Viene chiamata la stored procedure sottostante. Forse avrei dovuto riformulare e ho chiesto, 'DOVREI chiamare SaveChanges()?' -Non mi è chiaro a causa della mancanza di documentazione, se dovrei o non dovrei. – Didaxis

risposta

11

Secondo MSDN, SaveChanges

persiste tutti gli aggiornamenti per l'origine dati e resetta il rilevamento delle modifiche nel contesto dell'oggetto.

Cioè, per qualsiasi entità che è collegata al contesto e che è stata aggiunta, modificata o cancellata, EF genererà il corrispondente codice SQL ed eseguirà il confronto con il database. Nel tuo caso stai già eseguendo il codice SQL (più o meno) direttamente sul database chiamando la procedura memorizzata AddProduct. Quindi nel tuo caso SaveChanges non farà nulla e non è necessario (a meno che tu non abbia altre modifiche non salvate su ObjectContext, ovviamente).