Sdílet prostřednictvím


Názorný postup: Generování typy F# ze souboru DBML (F#)

Tento návod pro jazyk F# 3.0 popisuje, jak vytvořit typy pro data v databázi, jsou-li k dispozici informace o schématu kódované v souboru .dbml.Technologie LINQ to SQL používá tento formátu souborů pro reprezentaci schématu databáze.Soubory schémat technologie LINQ to SQL lze generovat v aplikaci Visual Studio použitím Objektově-relačního (O/R) návrháře.Další informace naleznete v tématu O/R Designer Overview a Code Generation in LINQ to SQL.

Poskytovatel typů Database Markup Language (DBML) umožňuje psát kód který používá typy založené na schématu databáze bez nutnosti zadávat statický připojovací řetězec v době překladu.To může být užitečné, je-li zapotřebí umožnit hotové aplikaci použít jinou databázi, jiné ověřovací údaje nebo jiný připojovací řetězec než ten použitý při vývoji aplikace.Používáte-li přímé připojení k databázi, které lze využít v době překladu, a použijete-li stejnou databázi a přihlašovací údaje v hotové aplikaci, lze také použít poskytovatel typů SQLDataConnection.Další informace naleznete v tématu Názorný postup: Přístup K databázi SQL pomocí zprostředkovatelů typu (F#).

Tento návod ukazuje následující úkoly.Aby byl postup úspěšný, je zapotřebí kroky splnit v tomto pořadí:

  • Vytvoření souboru .dbml

  • Vytvoření a nastavení projektu jazyka F#

  • Konfigurace poskytovatele typů

  • Dotazování na databázi

Vytvoření souboru .dbml

Pokud není k dispozici databáze na testování, vytvořte ji dle instrukcí na konci dokumentu Názorný postup: Přístup K databázi SQL pomocí zprostředkovatelů typu (F#).Budete-li tyto instrukce následovat, vytvoříte na serveru SQL Server databázi nazvanou MyDatabase, která obsahuje několik jednoduchých tabulek a uložených procedur.

Pokud je soubor .dbml již k dispozici, lze přejít na oddíl Vytvoření a nastavení projektu jazyka F#.Jinak lze vytvořit soubor .dbml z existující databáze SQL a použitím nástroje příkazového řádku SqlMetal.exe.

Vytvoření souboru .dbml pomocí nástroje SqlMetal.exe

  1. Otevřete Příkazový řádek vývojáře.

  2. Ujistěte, že máte přístup k nástroji SqlMetal.exe zadáním příkazu SqlMetal.exe /? v příkazovém řádku.Nástroj SqlMetal.exe je obvykle nainstalován v podsložce Microsoft SDKs složky Program Files nebo Program Files (x86).

  3. Spusťte nástroj SqlMetal.exe s následujícími parametry příkazového řádku.Vytvořte soubor .dbml nahrazením cesty c:\destpath vhodnou cestou a vložte příslušné hodnoty databázového serveru, názvu instance a názvu databáze.

    SqlMetal.exe /sprocs /dbml:C:\destpath\MyDatabase.dbml /server:SERVER\INSTANCE /database:MyDatabase
    

    [!POZNÁMKA]

    Má-li nástroj SqlMetal.exe potíže s vytvořením souborů z důvodu problémů s oprávněními, změňte aktuální adresář na složku, do které lze zapisovat.

  4. Prohlédněte si také další dostupné parametry příkazového řádku.K dispozici jsou například parametry, které lze použít v případě, že chcete v generovaných typech zahrnutou zobrazení a funkce SQL.Další informace naleznete v tématu SqlMetal.exe (nástroj pro generování kódu).

Vytvoření a nastavení projektu jazyka F#

V tomto kroku vytvoříte projekt a přidáte příslušné odkazy pro použití poskytovatele typů DBML.

Vytvoření a nastavení projektu jazyka F#

  1. Přidejte do řešení nový projekt Aplikace konzoly jazyka F#.

  2. V Průzkumníkovi řešení otevřete místní nabídku pro Odkazy a zvolte Přidat odkaz.

  3. V oblasti Sestavení zvolte uzel Rozhraní a poté v seznamu dostupných sestavení zvolte sestavení System.Data a System.Data.Linq.

  4. V oblasti Sestavení zvolte možnost Rozšíření a poté ze seznamu dostupných sestavení vyberte FSharp.Data.TypeProviders.

  5. Kliknutím na tlačítko OK přidáte do projektu odkazy na tato sestavení.

  6. (Volitelné).Zkopírujte v předchozím kroku vytvořený soubor .dbml a vložte jej do hlavní složky projektu.Tato složka obsahuje soubor projektu (.fsproj) a soubory kódu.V řádku nabídek zvolte nabídky Projekt, Přidat existující položku a poté určete soubor .dbml, který bude přidán do projektu.Pokud provedete tyto kroky, lze v následujícím kroku vynechat statický parametr ResolutionFolder.

Konfigurace poskytovatele typů

V této části vytvoříte poskytovatele typů a vygenerujete typy ze schématu popsaného v souboru .dbml.

Konfigurace poskytovatele typů a generování typů

  • Přidejte kód, který otevře obor názvů TypeProviders a vytvoří instanci poskytovatele typů pro soubor .dbml, který chcete použít.Pokud je soubor .dbml přidán do projektu, lze vynechat statický parametr ResolutionFolder.

    open Microsoft.FSharp.Data.TypeProviders
    
    
    type dbml = DbmlFile<"MyDatabase.dbml", ResolutionFolder = @"<path to folder that contains .dbml file>>
    
    // This connection string can be specified at run time.
    let connectionString = "Data Source=MYSERVER\INSTANCE;Initial Catalog=MyDatabase;Integrated Security=SSPI;"
    let dataContext = new dbml.Mydatabase(connectionString)
    

    Typ DataContext poskytuje přístup ke všem vygenerovaným typům a dědí z třídy DataContext.Poskytovatel typů DbmlFile zahrnuje různé statické parametry, které lze nastavit.Pro typ DataContext lze například použít jiný název zadáním příkazu DataContext=MyDataContext.V takovém případě je kód podobný následujícímu příkladu:

    open Microsoft.FSharp.Data.TypeProviders
    
    
    
    type dbml = DbmlFile<"MyDatabase.dbml",
                         ContextTypeName = "MyDataContext">
    
    // This connection string can be specified at run time.
    let connectionString = "Data Source=MYSERVER\INSTANCE;Initial Catalog=MyDatabase;Integrated Security=SSPI;"
    let db = new dbml.MyDataContext(connectionString)
    

Dotazování na databázi

V tomto oddíle je využito dotazovacích výrazů jazyka F# pro dotazování na databázi.

Dotazování na data

  • Přidejte kód pro dotaz na databázi.

    query {
            for row in db.Table1 do
            where (row.TestData1 > 2)
            select row
    }
    |> Seq.iter (fun row -> printfn "%d %s" row.TestData1 row.Name)
    

Další kroky

Lze přejít k využití jiných dotazovacích výrazů nebo zjistit připojení k databázi z kontextu dat a provádět běžné datové operace ADO.NET.Další kroky naleznete v částech následujících po "Dotazování na data" v tématu Názorný postup: Přístup K databázi SQL pomocí zprostředkovatelů typu (F#).

Viz také

Úkoly

Názorný postup: Přístup K databázi SQL pomocí zprostředkovatelů typu (F#)

Referenční dokumentace

Zprostředkovatel DbmlFile typu (F#)

SqlMetal.exe (nástroj pro generování kódu)

Výrazy dotazu (F#)

Další zdroje

Typ zprostředkovatele