Sdílet prostřednictvím


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 mapování relačních objektů.

Instalace nástrojů LINQ to SQL

Ve Visual Studio vytvoříte třídy LINQ to SQL, které reprezentují SQL tabulky pomocí Object Relational Designer (O/R Designer). Návrhář O/R je uživatelské rozhraní pro úpravy .dbml souborů. Úpravy .dbml souborů v návrhovém prostředí vyžadují nástroje LINQ to SQL, které nejsou ve výchozím nastavení nainstalovány jako součást žádné pracovní zátěže 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é součásti a potom vyberte Nástroje LINQ to SQL v kategorii Nástroje kódu.

Co je to Návrhář O/R

Návrhový nástroj O/R má na své návrhové ploše dvě odlišné oblasti: vlevo je podokno entit a vpravo podokno metod. 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.

O/R návrhář nabízí vizuální návrhovou plochu pro vytváření LINQ to SQL tříd entit a asociací (relací), které jsou založené na objektech v databázi. Jinými slovy, návrhář O/R vytvoří v aplikaci objektový model, který se mapuje na objekty v databázi. Generuje také DataContext silného typu, který odesílá a přijímá data mezi třídami entit a databází. Návrhář O/R také poskytuje funkce pro mapování uložených procedur a funkcí na DataContext metody pro vracení dat a naplnění tříd entit. A konečně O/R návrhář poskytuje možnost navrhovat vztahy dědičnosti mezi třídami entit.

Otevření návrháře relací objektů

Pokud chcete do projektu přidat model entity LINQ to SQL, zvolte Projekt>Přidat novou položkua pak v seznamu položek projektu vyberte LINQ to SQL Classes:

snímek obrazovky zobrazující třídy LINQ to SQL

Visual Studio vytvoří soubor .dbml a přidá ho do vašeho řešení. Toto je soubor mapování XML a související soubory kódu.

snímek obrazovky zobrazující třídy LINQ to SQL v Průzkumníku řešení

Když vyberete soubor .dbml, Visual Studio zobrazí plochu návrháře O/R, která vám umožňuje vizuálně vytvářet model. Následující ilustrace zobrazuje návrháře poté, co byly tabulky Northwind Customers a Orders přetaženy z Průzkumníka serveru . Všimněte si relace mezi tabulkami.

snímek obrazovky zobrazující LINQ to SQL Designer

Důležitý

návrhář je jednoduchý objektově-relační mapovač, protože podporuje pouze vztahy 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 O/R. 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é O/R Designer, naleznete v tématu Postupy: Rozšíření kódu generované návrhářem O/R.

Vytvoření a konfigurace DataContextu

Po přidání LINQ do tříd SQL položky do projektu a otevření návrháře relací/R představuje prázdná plocha návrhu prázdnou DataContext připravenou ke konfiguraci. DataContext je nakonfigurován s informacemi o připojení, které poskytuje první položka přetažená na návrhovou plochu. Proto se DataContext konfiguruje pomocí informací o připojení z první položky, která byla umístěna na návrhovou plochu. Další informace o třídě DataContext viz, Metody DataContext (Návrhář relací objektů).

Vytvořte třídy entit, které se mapují na databázové tabulky a pohledy

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 O/R návrháře. Jak je uvedeno v předchozí části, DataContext je nakonfigurován s informacemi o připojení poskytnuté první položkou, která je přetažena na návrhovou plochu. Pokud je do O/R Designerpřidána další položka, která používá jiné připojení, můžete změnit připojení pro DataContext. Další informace najdete 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 metody DataContext, 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 O/R Designeru . Uložené procedury a funkce jsou přidány do návrháře O/R 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 V/R Designeru , návratový typ vygenerované metody DataContext se liší v závislosti na tom, kam položku vypustíte. Další informace naleznete v tématu Metody DataContext (Návrhář objektově-relačních dat).

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 najdete v tématu Postupy: Jak přiřadit uložené procedury k provádění aktualizací, vkládání a odstraňování (Návrhář O/R).

Dědičnost a O/R návrhář

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ář O/R podporuje koncept dědičnosti s jednou tabulkou, jak je často implementována 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 O/R Návrhář jsou navrženy pro použití s jazykem Integrated Query (LINQ). Další informace naleznete v tématu Postupy: Dotazování na informace.

Oddělte vygenerovaný kód třídy DataContext a entity do různých oborů názvů.

Návrhář O/R poskytujekontextový obor názvů a obor názvů entit vlastnosti v DataContext. Tyto vlastnosti určují, do jakého oboru názvů se DataContext a kód třídy entity vygenerují. Ve výchozím nastavení jsou tyto vlastnosti prázdné a DataContext, stejně jako třídy entit, jsou umístěny do oboru názvů aplikace. Pokud chcete vygenerovat kód do jiného oboru názvů než do oboru názvů aplikace, zadejte hodnotu do vlastnosti oboru názvů kontextu a/nebo do vlastnosti oboru názvů entity.

Referenční obsah

Viz také