Přehled hierarchické aktualizace

Hierarchické aktualizace se vztahuje k ukládání aktualizovaných dat z datové sady, která má dvě nebo více souvisejících tabulek, zpět do databáze při zachování referenční integrity.Referenční integrity odkazuje omezení cizího klíče v databázi, které řídí chování vložení, aktualizace a odstranění souvisejících záznamů podle pravidel konzistence.Je například referenční integrity, která vynutí vytvoření záznamu odběratele před vytvořením objednávky tohoto zákazníka.

Pokud vývojáři vytvořili data aplikací v sadě Visual Studio 2005 a dřívějších verzích, automaticky generovaný kód uložit změněná data pouze přetáhnout z první tabulky Zdroje dat okno.Při přetažení z další tabulky Zdroje dat okno, uživatelé museli ručně přidat kód, který chcete uložit změny v těchto tabulek v databázi.Byly nejen uživatelům potřebné k přidání kódu k volání TableAdapter.Update metoda pro každou tabulku, ale logika musela přejímá k provedení konkrétní vloží, aktualizace a odstraní ve správném pořadí pro jednotlivé tabulky tak, aby se zabránilo porušení referenční integrity. (Například noví zákazníci musí před uložit přidat své objednávky a objednávky musí být odstraněny před odebráním stávajícího zákazníka.)

Spuštění v aplikaci Visual Studio 2008, definovaných datových sad jsou posílena novou TableAdapterManager komponenty.TableAdapterManagersnižuje množství kódu, který je vyžadován pro uložení dat ve více tabulkách z několika postupů s mnoha řádky kódu volání jedné metody: TableAdapterManager.UpdateAll(TypedDataset).TableAdapterManager Poskytuje základní logiky, potřebný k zachování referenční integrity během operace aktualizace (Uložit) mezi datovou sadu a databází.Další informace naleznete v tématu TableAdapterManager – přehled.

Povolení hierarchické aktualizace v datové sadě

Hierarchické aktualizace je ve výchozím nastavení povoleno pro všechny nové datové sady, které jsou přidány nebo vytvořené v projektu.Hierarchické aktualizace zapnout nebo vypnout pomocí nastavení Hierarchické aktualizace vlastnosti definované datové sady v Vytváření a úpravy typovaných datových sad k True nebo False.Podrobnější informace získáte v tématu Postupy: Povolení a zákaz hierarchické aktualizace.

Omezení cizího klíče a kaskádové aktualizace a odstranění

Je důležité pochopit, jak cizí klíč omezení a s možností chování v databázi vytvořené v dataset generovaný kód.

Ve výchozím nastavení, jsou generovány tabulky dat v datové sadě s vztahy (DataRelation) odpovídající relace v databázi.Vztah v sadě dat však není generován jako omezení cizího klíče.DataRelation Je nakonfigurován jako Vztahu pouze bez UpdateRule nebo DeleteRule v platnosti.

Ve výchozím nastavení kaskádové aktualizace a odstranění souvisejících polí v kaskádě jsou vypnuty, přestože databázové relace je nastavena s kaskádové aktualizace a odstranění v kaskádě zapnuta.Například vytvoření nového zákazníka a nové objednávky a poté pokusu o uložení dat může způsobit konflikt s omezeními cizího klíče v databázi definována.Další informace naleznete v tématu Postupy: Konfigurace omezení cizího klíče v datové sadě.

Nastavení pořadí provádět aktualizace

Nastavení pořadí provádět aktualizace nastaví pořadí jednotlivých vloží, aktualizace a odstraní nutné uložit upravené data ve všech tabulkách objektu DataSet.Při zapnuté funkci hierarchické aktualizace, vloží jsou provedeny nejprve pak aktualizace a odstraní.TableAdapterManager poskytuje vlastnost UpdateOrder, která může být nastavena na provádění nejprve aktualizací, pak vkládání a pak odstraňování.

[!POZNÁMKA]

Je důležité pochopit, že je vše včetně aktualizace objednávky.Po provedení aktualizace budou vloží se provádějí u všech tabulek v sadě dat, pak jsou aktualizace prováděny pro všechny tabulky v datové sadě, a pak odstraní budou provedeny pro všechny tabulky v datové sadě.

Chcete-li nastavit UpdateOrder vlastnost Po přetažení položek z Okno zdroje dat do formuláře, klepněte na tlačítko TableAdapterManager komponent a sadu UpdateOrder vlastnost v Vlastnosti okno.Další informace naleznete v tématu Postupy: Nastavení pořadí při provádění hierarchické aktualizace.

Vytvoření záložní kopie sady dat před provedením hierarchické aktualizace

Při ukládání dat (voláním TableAdapterManager.UpdateAll() metoda), TableAdapterManager pokusy o aktualizaci dat pro každou tabulku v jedné transakci.Pokud žádnou část aktualizace pro všechny tabulky, je celá transakce vrácena zpět.Ve většině případů vrácení transakce zpět vrátí do původního stavu aplikace.Však v některých případech můžete chtít obnovit ze záložní kopie objektu dataset.Jedním příkladem je, když použijete Automatický přírůstek hodnoty.Například, pokud k uložení operace se nezdaří obnovit automatické zvýšení hodnoty v datové sadě a dataset bude nadále automaticky rostoucí hodnoty ponechat mezeru v číslování, které nemusí být přijatelná v aplikaci vytvořit.V situacích, kde to je problém, TableAdapterManager poskytuje BackupDataSetBeforeUpdate vlastnost, která nahradí existující dataset záložní kopie, pokud se transakce nezdaří.

[!POZNÁMKA]

Záložní kopie je pouze v paměti během zpracování TableAdapterManager.UpdateAll metody.Neexistuje tedy žádný programový přístup k této záložní sady dataset protože jej nahradí původní objekt dataset nebo dostane mimo rozsah platnosti ihned, jakmile TableAdapterManager.UpdateAll dokončení metody.

Viz také

Úkoly

Návod: Ukládání dat z tabulek souvisejících dat (hierarchická aktualizace)

Koncepty

Ukládání dat

TableAdapterManager – přehled

Další zdroje

Hierarchická aktualizace