Nástroje LINQ to SQL v sadě Visual Studio
LINQ to SQL byla první technologie mapování relačních objektů vydaná Microsoftem. Funguje dobře v základních scénářích a nadále se podporuje v sadě Visual Studio, ale už není ve vývoji aktivní. LinQ to SQL použijte při údržbě starší verze aplikace, která ji už používá, nebo v jednoduchých aplikacích, které používají SQL Server a nevyžadují mapování více tabulek. Obecně platí, že nové aplikace by měly používat Entity Framework, pokud je vyžadována vrstva mapperu relačních objektů.
Instalace nástrojů LINQ to SQL
V sadě Visual Studio vytvoříte třídy LINQ to SQL, které představují tabulky SQL pomocí Návrhář relací objektů (Návrhář relací objektů). Návrhář relací objektů je uživatelské rozhraní pro úpravy souborů .dbml. Úpravy souborů .dbml pomocí plochy návrháře vyžadují nástroje LINQ to SQL, které nejsou ve výchozím nastavení nainstalovány jako součást žádné úlohy sady Visual Studio.
Pokud chcete nainstalovat nástroje LINQ to SQL, spusťte instalační program sady Visual Studio, zvolte Upravit, pak vyberte kartu Jednotlivé komponenty a pak v kategorii Nástroje kódu vyberte nástroje LINQ to SQL.
Co je Návrhář relací objektů
Návrhář relací má na návrhové ploše dvě různé oblasti: podokno entit vlevo a podokno metod vpravo. Podokno entit je hlavní návrhová plocha, která zobrazuje třídy entit, přidružení a hierarchie dědičnosti. Podokno metod je návrhová plocha, která zobrazuje DataContext metody mapované na uložené procedury a funkce.
Návrhář relací poskytuje vizuální návrhovou plochu pro vytváření tříd entit LINQ to SQL a přidružení (relací), které jsou založené na objektech v databázi. Jinými slovy návrhář relací vytvoří objektový model v aplikaci, která se mapuje na objekty v databázi. Generuje také silné typy DataContext , které odesílají a přijímají data mezi třídami entit a databází. Návrhář relací poskytuje také funkce pro mapování uložených procedur a funkcí na DataContext metody pro vracení dat a naplnění tříd entit. Návrhář relací relací dědičnosti mezi třídami entit navíc poskytuje možnost návrhu vztahů dědičnosti.
Otevření návrháře relací objektů
Pokud chcete do projektu přidat model entity LINQ to SQL, zvolte Přidat novou položku projektu>a pak ze seznamu položek projektu vyberte LINQ to SQL Classes:
Visual Studio vytvoří .dbml
soubor a přidá ho do vašeho řešení. Toto je soubor mapování XML a související soubory kódu.
Při výběru .dbml
souboru se v sadě Visual Studio zobrazí plocha Návrháře relací objektů, která umožňuje vizuálně vytvořit model. Následující obrázek znázorňuje návrháře po přetažení Northwind Customers
a Orders
tabulek z Průzkumníka serveru. Všimněte si relace mezi tabulkami.
Důležité
Návrhář relací objektů je jednoduchý mapovač relačních objektů, protože podporuje pouze relace mapování 1:1. Jinými slovy, třída entity může mít pouze relaci mapování 1:1 s tabulkou nebo zobrazením databáze. Komplexní mapování, jako je například mapování třídy entity na propojenou tabulku, není podporováno; Pro komplexní mapování použijte Entity Framework. Návrhář je navíc jednosměrný generátor kódu. To znamená, že se v souboru s kódem projeví jenom změny provedené na ploše návrháře. Ruční změny souboru kódu se neprojeví v Návrháři relací objektů. Všechny změny provedené ručně v souboru kódu se při uložení návrháře přepíšou a kód se znovu vygeneruje. Informace o tom, jak přidat uživatelský kód a rozšířit třídy vygenerované Návrhářem relací objektů, naleznete v tématu Postupy: Rozšíření kódu vygenerovaného Návrhářem relací objektů.
Vytvoření a konfigurace DataContextu
Po přidání položky LINQ to SQL Classes do projektu a otevření návrháře relací objektů představuje prázdná plocha návrhu prázdnou DataContext připravenou ke konfiguraci. je DataContext nakonfigurován s informacemi o připojení poskytnutými první položkou, která je přetažena na návrhovou plochu. Proto DataContext se konfiguruje pomocí informací o připojení z první položky vyhozené na návrhovou plochu. Další informace o DataContext třídě naleznete v tématu DataContext metody (Návrhář relací objektů).
Vytvoření tříd entit, které se mapuje na databázové tabulky a zobrazení
Třídy entit mapované na tabulky a zobrazení můžete vytvořit přetažením databázových tabulek a zobrazení z Průzkumníka serveru nebo Průzkumníka databáze do Návrháře relací objektů. Jak je uvedeno v předchozí části, je nakonfigurováno s informacemi o připojení poskytnutými první položkou, DataContext která je přetažena na návrhovou plochu. Pokud se do Návrháře relací objektů přidá další položka, která používá jiné připojení, můžete změnit připojení pro DataContextobjekt . Další informace naleznete v tématu Postupy: Vytvoření tříd LINQ to SQL mapovaných na tabulky a zobrazení (Návrhář relací objektů).
Vytvoření metod DataContext, které volají uložené procedury a funkce
Můžete vytvořit DataContext metody, které volají (jsou mapovány na) uložené procedury a funkce přetažením z Průzkumníka serveru nebo Průzkumníka databáze do Návrháře relací objektů. Uložené procedury a funkce se přidají do Návrháře relací objektů jako metody DataContext.
Poznámka:
Když přetáhnete uložené procedury a funkce z Průzkumníka serveru nebo Průzkumníka databáze do Návrháře relací objektů, návratový typ vygenerované DataContext metody se liší v závislosti na tom, kam položku vyhodíte. Další informace naleznete v tématu Metody DataContext (Návrhář relací objektů).
Konfigurace DataContext pro použití uložených procedur k ukládání dat mezi třídami entit a databází
Jak jsme uvedli dříve, můžete vytvořit DataContext metody, které volají uložené procedury a funkce. Kromě toho můžete také přiřadit uložené procedury, které se používají pro výchozí chování LINQ to SQL za běhu, které provádí vkládání, aktualizace a odstranění. Další informace naleznete v tématu Postupy: Přiřazení uložených procedur k provádění aktualizací, vkládání a odstraňování (Návrhář relací objektů).
Dědičnost a návrhář relací objektů
Stejně jako jiné objekty mohou třídy LINQ to SQL používat dědičnost a být odvozeny z jiných tříd. V databázi se relace dědičnosti vytvářejí několika způsoby. Návrhář relací podporuje koncept dědičnosti s jednou tabulkou, protože se často implementuje v relačních systémech. Další informace naleznete v tématu Postupy: Konfigurace dědičnosti pomocí Návrháře relací objektů.
Dotazy LINQ to SQL
Třídy entit vytvořené Návrhářem relací objektů jsou navrženy pro použití s jazykovým integrovaným dotazem (LINQ). Další informace naleznete v tématu Postupy: Dotaz na informace.
Oddělte vygenerovaný kód třídy DataContext a entity do různých oborů názvů.
Návrhář relací poskytuje vlastnosti oboru názvů kontextu a oboru názvů entit v objektu DataContext. Tyto vlastnosti určují, do jakého DataContext oboru názvů se generuje kód třídy entity. Ve výchozím nastavení jsou tyto vlastnosti prázdné a DataContext třídy entit se generují do oboru názvů aplikace. Pokud chcete kód vygenerovat do jiného oboru názvů, než je obor názvů aplikace, zadejte hodnotu do vlastností oboru názvů kontextu nebo oboru názvů entity.