Přiřazení uložených procedur za účelem aktualizací, vkládání a odstraňování (Návrhář relací objektů)

Uložené procedury lze přidat do Návrháře relací objektů a provádět jako typické DataContext metody. Dají se také použít k přepsání výchozího chování LINQ to SQL za běhu, které provádí vkládání, Aktualizace a delete při uložení změn z tříd entit do databáze (například při volání SubmitChanges metody).

Poznámka:

Pokud uložená procedura vrátí hodnoty, které je potřeba odeslat zpět klientovi (například hodnoty vypočítané v uložené proceduře), vytvořte v uložených procedurách výstupní parametry. Pokud nemůžete použít výstupní parametry, zapište částečnou implementaci metody místo toho, abyste se spoléhali na přepsání vygenerované Návrhářem relací objektů. Členové namapovaní na hodnoty generované databází musí být po úspěšném dokončení INSERT nebo UPDATE operací nastaveni na odpovídající hodnoty. Další informace najdete v tématu Odpovědnosti vývojáře při přepsání výchozího chování.

Poznámka:

LINQ to SQL zpracovává hodnoty generované databází automaticky pro identitu (automatické přírůstky), rowguidcol (globálně jedinečný identifikátor generovaný databází (GUID) a sloupce časového razítka. Hodnoty generované databází v jiných typech sloupců neočekávaně způsobí hodnotu null. Pokud chcete vrátit hodnoty generované databází, měli byste ručně nastavit IsDbGeneratedhodnotu true a AutoSync jednu z následujících možností: AutoSync.Always, AutoSync.OnInsert nebo AutoSync.OnUpdate.

Konfigurace chování aktualizace třídy entity

Ve výchozím nastavení je logika pro aktualizaci databáze (vložení, aktualizace a odstranění) změnami provedenými v datech v třídách entit LINQ to SQL poskytována modulem runtime LINQ to SQL. Modul runtime vytvoří výchozí INSERT, UPDATEa DELETE příkazy založené na schématu tabulky (sloupec a informace o primárním klíči). Pokud výchozí chování není žádoucí, můžete chování aktualizace nakonfigurovat přiřazením konkrétních uložených procedur pro provádění potřebných vložení, aktualizací a odstranění potřebných k manipulaci s daty v tabulce. Můžete to udělat také v případě, že se negeneruje výchozí chování, například když se třídy entit mapují na zobrazení. Nakonec můžete přepsat výchozí chování aktualizace, když databáze vyžaduje přístup k tabulce prostřednictvím uložených procedur.

Poznámka:

V počítači se můžou zobrazovat různé názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio v tomto článku. Možná používáte jinou edici sady Visual Studio nebo jiné nastavení prostředí. Další informace naleznete v tématu Přizpůsobení integrovaného vývojového prostředí (IDE).

Přiřazení uložených procedur k přepsání výchozího chování třídy entity

  1. V návrháři otevřete soubor LINQ to SQL. (Poklikejte na .dbml soubor v Průzkumník řešení.)

  2. V Průzkumníku serveru nebo Průzkumníku databáze rozbalte uložené procedury a vyhledejte uložené procedury, které chcete použít pro příkazy Vložit, Aktualizovat a/nebo Odstranit třídy entity.

  3. Přetáhněte uloženou proceduru do Návrháře relací objektů.

    Uložená procedura se přidá do podokna metod jako DataContext metoda. Další informace naleznete v tématu Metody DataContext (Návrhář relací objektů).

  4. Vyberte třídu entity, pro kterou chcete k provádění aktualizací použít uloženou proceduru.

  5. V okně Vlastnosti vyberte příkaz, který chcete přepsat (Vložit, Aktualizovat nebo Odstranit).

  6. Kliknutím na tři tečky (...) vedle slov Použít modul runtime otevřete dialogové okno Konfigurovat chování .

  7. Vyberte Přizpůsobit.

  8. V seznamu Přizpůsobit vyberte požadovanou uloženou proceduru.

  9. Zkontrolujte seznam argumentů metody a vlastností třídy a ověřte, zda argumenty metody mapují na příslušné vlastnosti třídy. Namapujte argumenty původní metody (Original_<ArgumentName>) na původní vlastnosti (<PropertyName> (Original)) pro Update příkazy a Delete příkazy.

    Poznámka:

    Ve výchozím nastavení se argumenty metody mapují na vlastnosti třídy, když se názvy shodují. Pokud se změněné názvy vlastností již neshoduje mezi tabulkou a třídou entity, možná budete muset vybrat ekvivalentní vlastnost třídy, na kterou se má mapování namapovat, pokud návrhář nemůže určit správné mapování.

  10. Klikněte na OK nebo Použít.

    Poznámka:

    Chování každé třídy a kombinace chování můžete dál konfigurovat, pokud po provedení každé změny kliknete na Tlačítko Použít . Pokud změníte třídu nebo chování před kliknutím na tlačítko Použít, zobrazí se dialogové okno upozornění a zobrazí se možnost použít změny.

Pokud se chcete vrátit k použití výchozí logiky modulu runtime pro aktualizace, klikněte na tři tečky vedle příkazu Vložit, Aktualizovat nebo Odstranit v okně Vlastnosti a potom v dialogovém okně Konfigurovat chování vyberte Použít modul runtime.