Sdílet prostřednictvím


Aktivity přístupu k databázi

Aktivity přístupu k databázi umožňují přístup k databázi v rámci pracovního postupu. Tyto aktivity umožňují přístupu k databázím načítat nebo upravovat informace a používat ADO.NET pro přístup k databázi.

Databázové aktivity

Následující části podrobně uvádějí seznam aktivit zahrnutých v ukázce DbActivities.

DbUpdate

Spustí dotaz SQL, který vytváří změny v databázi (vložení, aktualizace, odstranění a další úpravy).

Tato třída provádí svou práci asynchronně (odvozuje a AsyncCodeActivity používá její asynchronní funkce).

Informace o připojení je možné nakonfigurovat nastavením invariantního názvu poskytovatele (ProviderName) a připojovací řetězec (ConnectionString) nebo použitím názvu konfigurace připojovací řetězec (ConfigFileSectionName) z konfiguračního souboru aplikace.

Důležité

Microsoft doporučuje používat nejbezpečnější dostupný tok ověřování. Pokud se připojujete k Azure SQL, spravované identity pro prostředky Azure se doporučují metodou ověřování.

Dotaz, který se má spustit, je nakonfigurovaný ve své Sql vlastnosti a parametry se předávají prostřednictvím Parameters kolekce.

Po DbUpdate spuštění se v AffectedRecords vlastnosti vrátí počet ovlivněných záznamů.

Public class DbUpdate: AsyncCodeActivity
{
    [RequiredArgument]
    [OverloadGroup("ConnectionString")]
    [DefaultValue(null)]
    public InArgument<string> ProviderName { get; set; }

    [RequiredArgument]
    [OverloadGroup("ConnectionString")]
    [DependsOn("ProviderName")]
    [DefaultValue(null)]
    public InArgument<string> ConnectionString { get; set; }

    [RequiredArgument]
    [OverloadGroup("ConfigFileSectionName")]
    [DefaultValue(null)]
    public InArgument<string> ConfigName { get; set; }

    [DefaultValue(null)]
    public CommandType CommandType { get; set; }

    [RequiredArgument]
    public InArgument<string> Sql { get; set; }

    [DependsOn("Sql")]
    [DefaultValue(null)]
    public IDictionary<string, Argument> Parameters { get; }

    [DependsOn("Parameters")]
    public OutArgument<int> AffectedRecords { get; set; }
}
Argument Popis
ProviderName ADO.NET invariantní název zprostředkovatele. Pokud je tento argument nastavený, ConnectionString musí být také nastaven.
ConnectionString Připojovací řetězec pro připojení k databázi. Pokud je tento argument nastavený, ProviderName musí být také nastaven.
ConfigName Název oddílu konfiguračního souboru, kde jsou uloženy informace o připojení. Pokud je tento argument nastavený ProviderName a ConnectionString nevyžaduje se.
CommandType DbCommand Typ spuštění.
Sql Příkaz SQL, který se má spustit.
Parametry Kolekce parametrů dotazu SQL
Ovlivněnézáznamy Počet záznamů ovlivněných poslední operací

Důležité

Microsoft doporučuje používat nejbezpečnější dostupný tok ověřování. Pokud se připojujete k Azure SQL, spravované identity pro prostředky Azure se doporučují metodou ověřování.

DbQueryScalar

Spustí dotaz, který načte jednu hodnotu z databáze.

Tato třída provádí svou práci asynchronně (odvozuje a AsyncCodeActivity<TResult> používá její asynchronní funkce).

Informace o připojení je možné nakonfigurovat nastavením invariantního názvu poskytovatele (ProviderName) a připojovací řetězec (ConnectionString) nebo použitím názvu konfigurace připojovací řetězec (ConfigFileSectionName) z konfiguračního souboru aplikace.

Důležité

Microsoft doporučuje používat nejbezpečnější dostupný tok ověřování. Pokud se připojujete k Azure SQL, spravované identity pro prostředky Azure se doporučují metodou ověřování.

Dotaz, který se má spustit, je nakonfigurovaný ve své Sql vlastnosti a parametry se předávají prostřednictvím Parameters kolekce.

Po DbQueryScalar spuštění se skalár vrátí v argumentu Result out (typu TResult, který je definován v základní třídě AsyncCodeActivity<TResult>).

public class DbQueryScalar<TResult> : AsyncCodeActivity<TResult>
{
    // public arguments
    [RequiredArgument]
    [OverloadGroup("ConnectionString")]
    [DefaultValue(null)]
    public InArgument<string> ProviderName { get; set; }

    [RequiredArgument]
    [OverloadGroup("ConnectionString")]
    [DependsOn("ProviderName")]
    [DefaultValue(null)]
    public InArgument<string> ConnectionString { get; set; }

    [RequiredArgument]
    [OverloadGroup("ConfigFileSectionName")]
    [DefaultValue(null)]
    public InArgument<string> ConfigName { get; set; }

    [DefaultValue(null)]
    public CommandType CommandType { get; set; }

    [RequiredArgument]
    public InArgument<string> Sql { get; set; }

    [DependsOn("Sql")]
    [DefaultValue(null)]
    public IDictionary<string, Argument> Parameters { get; }
}
Argument Popis
ProviderName ADO.NET invariantní název zprostředkovatele. Pokud je tento argument nastavený, ConnectionString musí být také nastaven.
ConnectionString Připojovací řetězec pro připojení k databázi. Pokud je tento argument nastavený, ProviderName musí být také nastaven.
CommandType DbCommand Typ spuštění.
ConfigName Název oddílu konfiguračního souboru, kde jsou uloženy informace o připojení. Pokud je tento argument nastavený ProviderName a ConnectionString nevyžaduje se.
Sql Příkaz SQL, který se má spustit.
Parametry Kolekce parametrů dotazu SQL
Výsledek Skalární, který se získá po spuštění dotazu. Tento argument je typu TResult.

Důležité

Microsoft doporučuje používat nejbezpečnější dostupný tok ověřování. Pokud se připojujete k Azure SQL, spravované identity pro prostředky Azure se doporučují metodou ověřování.

DbQuery

Spustí dotaz, který načte seznam objektů. Po spuštění dotazu se spustí funkce mapování (může to být Func<TResult><DbDataReader,> TResultnebo<DbDataReaderActivityFunc<TResult> , ). TResult> Tato funkce mapování získá záznam v objektu DbDataReader , který se má vrátit, a namapuje ho na objekt, který se má vrátit.

Informace o připojení je možné nakonfigurovat nastavením invariantního názvu poskytovatele (ProviderName) a připojovací řetězec (ConnectionString) nebo použitím názvu konfigurace připojovací řetězec (ConfigFileSectionName) z konfiguračního souboru aplikace.

Důležité

Microsoft doporučuje používat nejbezpečnější dostupný tok ověřování. Pokud se připojujete k Azure SQL, spravované identity pro prostředky Azure se doporučují metodou ověřování.

Dotaz, který se má spustit, je nakonfigurovaný ve své Sql vlastnosti a parametry se předávají prostřednictvím Parameters kolekce.

Výsledky dotazu SQL se načtou pomocí příkazu DbDataReader. Aktivita prochází a mapuje DbDataReader řádky v DbDataReader instanci TResult. Uživatel DbQuery musí poskytnout kód mapování a to lze provést dvěma způsoby: pomocí ,DbDataReader> TResultFunc<TResult><nebo<DbDataReaderActivityFunc<TResult> , . TResult> V prvním případě se mapa provádí v jediném impulsu provádění. Proto je rychlejší, ale nelze ji serializovat do XAML. V posledním případě se mapa provádí v několika impulsech. Proto může být pomalejší, ale dá se serializovat do XAML a vytvořit deklarativním způsobem (jakákoli existující aktivita se může účastnit mapování).

public class DbQuery<TResult> : AsyncCodeActivity<IList<TResult>> where TResult : class
{
    // public arguments
    [RequiredArgument]
    [OverloadGroup("ConnectionString")]
    [DefaultValue(null)]
    public InArgument<string> ProviderName { get; set; }

    [RequiredArgument]
    [OverloadGroup("ConnectionString")]
    [DependsOn("ProviderName")]
    [DefaultValue(null)]
    public InArgument<string> ConnectionString { get; set; }

    [RequiredArgument]
    [OverloadGroup("ConfigFileSectionName")]
    [DefaultValue(null)]
    public InArgument<string> ConfigName { get; set; }

    [DefaultValue(null)]
    public CommandType CommandType { get; set; }

    [RequiredArgument]
    public InArgument<string> Sql { get; set; }

    [DependsOn("Sql")]
    [DefaultValue(null)]
    public IDictionary<string, Argument> Parameters { get; }

    [OverloadGroup("DirectMapping")]
    [DefaultValue(null)]
    public Func<DbDataReader, TResult> Mapper { get; set; }

    [OverloadGroup("MultiplePulseMapping")]
    [DefaultValue(null)]
    public ActivityFunc<DbDataReader, TResult> MapperFunc { get; set; }
}
Argument Popis
ProviderName ADO.NET invariantní název zprostředkovatele. Pokud je tento argument nastavený, ConnectionString musí být také nastaven.
ConnectionString Připojovací řetězec pro připojení k databázi. Pokud je tento argument nastavený, ProviderName musí být také nastaven.
CommandType DbCommand Typ spuštění.
ConfigName Název oddílu konfiguračního souboru, kde jsou uloženy informace o připojení. Pokud je tento argument nastavený ProviderName a ConnectionString nevyžaduje se.
Sql Příkaz SQL, který se má spustit.
Parametry Kolekce parametrů dotazu SQL
Kartograf Funkce mapování (Func<TResult>DbDataReader<, TResult>), která přebírá záznam ve DataReader získaném výsledku provádění dotazu a vrací instanci objektu typuTResult, který se má přidat do Result kolekce.

V tomto případě se mapování provádí v jednom impulsu provádění, ale nelze jej deklarativním způsobem vytvořit pomocí návrháře.
MapperFunc Funkce mapování (ActivityFunc<TResult>DbDataReader<, TResult>), která přebírá záznam ve DataReader získaném výsledku provádění dotazu a vrací instanci objektu typuTResult, který se má přidat do Result kolekce.

V tomto případě se mapování provádí v několika impulsech provádění. Tuto funkci lze serializovat do XAML a vytvořit deklarativní (jakákoli existující aktivita se může účastnit mapování).
Výsledek Seznam objektů získaných v důsledku spuštění dotazu a spuštění funkce mapování pro každý záznam v objektu DataReader.

Důležité

Microsoft doporučuje používat nejbezpečnější dostupný tok ověřování. Pokud se připojujete k Azure SQL, spravované identity pro prostředky Azure se doporučují metodou ověřování.

DbQueryDataSet

Spustí dotaz, který vrátí hodnotu DataSet. Tato třída provádí svou práci asynchronně. Odvozuje AsyncCodeActivity<TResult> a používá její asynchronní funkce.

Informace o připojení je možné nakonfigurovat nastavením invariantního názvu poskytovatele (ProviderName) a připojovací řetězec (ConnectionString) nebo použitím názvu konfigurace připojovací řetězec (ConfigFileSectionName) z konfiguračního souboru aplikace.

Důležité

Microsoft doporučuje používat nejbezpečnější dostupný tok ověřování. Pokud se připojujete k Azure SQL, spravované identity pro prostředky Azure se doporučují metodou ověřování.

Dotaz, který se má spustit, je nakonfigurovaný ve své Sql vlastnosti a parametry se předávají prostřednictvím Parameters kolekce.

Po provedení je DbQueryDataSet vrácen v argumentu Result out (typu TResult, který je definován v základní třídě AsyncCodeActivity<TResult>).DataSet

public class DbQueryDataSet : AsyncCodeActivity<DataSet>
{
    // public arguments
    [RequiredArgument]
    [OverloadGroup("ConnectionString")]
    [DefaultValue(null)]
    public InArgument<string> ProviderName { get; set; }

    [RequiredArgument]
    [OverloadGroup("ConnectionString")]
    [DependsOn("ProviderName")]
    [DefaultValue(null)]
    public InArgument<string> ConnectionString { get; set; }

    [RequiredArgument]
    [OverloadGroup("ConfigFileSectionName")]
    [DefaultValue(null)]
    public InArgument<string> ConfigName { get; set; }

    [DefaultValue(null)]
    public CommandType CommandType { get; set; }

    [RequiredArgument]
    public InArgument<string> Sql { get; set; }

    [DependsOn("Sql")]
    [DefaultValue(null)]
    public IDictionary<string, Argument> Parameters { get; }
}
Argument Popis
ProviderName ADO.NET invariantní název zprostředkovatele. Pokud je tento argument nastavený, ConnectionString musí být také nastaven.
ConnectionString Připojovací řetězec pro připojení k databázi. Pokud je tento argument nastavený, ProviderName musí být také nastaven.
ConfigName Název oddílu konfiguračního souboru, kde jsou uloženy informace o připojení. Pokud je tento argument nastavený ProviderName a ConnectionString nevyžaduje se.
CommandType DbCommand Typ spuštění.
Sql Příkaz SQL, který se má spustit.
Parametry Kolekce parametrů dotazu SQL
Výsledek DataSet který se získá po provedení dotazu.

Důležité

Microsoft doporučuje používat nejbezpečnější dostupný tok ověřování. Pokud se připojujete k Azure SQL, spravované identity pro prostředky Azure se doporučují metodou ověřování.

Konfigurace informací o připojení

Všechny aktivity databáze sdílejí stejné konfigurační parametry. Dají se nakonfigurovat dvěma způsoby:

  • ConnectionString + InvariantName: Nastavte invariantní název a připojovací řetězec zprostředkovatele ADO.NET.

    Activity dbSelectCount = new DbQueryScalar<DateTime>()
    {
        ProviderName = "System.Data.SqlClient",
        ConnectionString = @"Data Source=.\SQLExpress;
                              Initial Catalog=DbActivitiesSample;
                              Integrated Security=True",
        Sql = "SELECT GetDate()"
    };
    
  • ConfigName: Nastavte název oddílu konfigurace, který obsahuje informace o připojení.

    <connectionStrings>
        <add name="DbActivitiesSample"
              providerName="System.Data.SqlClient"
              connectionString="Data Source=.\SQLExpress;Initial Catalog=DbActivitiesSample;Integrated Security=true"/>
      </connectionStrings>
    

    V aktivitě:

    Activity dbSelectCount = new DbQueryScalar<int>()
    {
        ConfigName = "DbActivitiesSample",
        Sql = "SELECT COUNT(*) FROM Roles"
    };
    

Důležité

Microsoft doporučuje používat nejbezpečnější dostupný tok ověřování. Pokud se připojujete k Azure SQL, spravované identity pro prostředky Azure se doporučují metodou ověřování.

Spuštění této ukázky

Pokyny pro nastavení

Tato ukázka používá databázi. S ukázkou je k dispozici skript pro nastavení a načtení (Setup.cmd). Tento soubor musíte spustit pomocí příkazového řádku.

Skript Setup.cmd vyvolá soubor skriptu CreateDb.sql, který obsahuje příkazy SQL, které dělají toto:

  • Vytvoří databázi s názvem DbActivitiesSample.
  • Vytvoří tabulku Role.
  • Vytvoří tabulku Zaměstnanci.
  • Vloží do tabulky Role tři záznamy.
  • Vloží do tabulky Employees dvanáct záznamů.

Spuštění Setup.cmd

  1. Otevřete příkazový řádek.

  2. Přejděte do ukázkové složky DbActivities.

  3. Zadejte "setup.cmd" a stiskněte Enter.

    Poznámka:

    Setup.cmd se pokusí nainstalovat ukázku v instanci SqlExpress místního počítače. Pokud ho chcete nainstalovat do jiné instance SQL Serveru, upravte Setup.cmd s novým názvem instance.

Chcete-li spustit ukázku

  1. Otevřete řešení v sadě Visual Studio.
  2. Pokud chcete řešení zkompilovat, stiskněte kombinaci kláves Ctrl+Shift+B.
  3. Pokud chcete ukázku spustit bez ladění, stiskněte Ctrl+F5.

Pokud chcete ukázkovou databázi odinstalovat, spusťte Cleanup.cmd z ukázkové složky na příkazovém řádku.

Důležité

Ukázky už můžou být na vašem počítači nainstalované. Než budete pokračovat, zkontrolujte následující (výchozí) adresář.

<InstallDrive>:\WF_WCF_Samples

Pokud tento adresář neexistuje, přejděte do ukázek Windows Communication Foundation (WCF) a Windows Workflow Foundation (WF) pro .NET Framework 4 a stáhněte si všechny ukázky WCF (Windows Communication Foundation) a WF. Tato ukázka se nachází v následujícím adresáři.

<InstallDrive>:\WF_WCF_Samples\WF\Scenario\ActivityLibrary\DbActivities