Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 (Aktualizace databáze)
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; }
}
| Důvod | Popis |
|---|---|
| Název poskytovatele | ADO.NET invariantní název zprostředkovatele. Pokud je tento argument nastavený, ConnectionString musí být také nastaven. |
| Připojovací řetězec | Připojovací řetězec pro připojení k databázi. Pokud je tento argument nastavený, ProviderName musí být také nastaven. |
| Název konfigurace | 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. |
| TypPříkazu | 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; }
}
| Důvod | Popis |
|---|---|
| Název poskytovatele | ADO.NET invariantní název zprostředkovatele. Pokud je tento argument nastavený, ConnectionString musí být také nastaven. |
| Připojovací řetězec | Připojovací řetězec pro připojení k databázi. Pokud je tento argument nastavený, ProviderName musí být také nastaven. |
| TypPříkazu | DbCommand Typ spuštění. |
| Název konfigurace | 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,TResult>neboActivityFunc<TResult><DbDataReader , ). 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í ,Func<TResult><DbDataReaderTResult>neboActivityFunc<TResult><DbDataReader , . 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; }
}
| Důvod | Popis |
|---|---|
| Název poskytovatele | ADO.NET invariantní název zprostředkovatele. Pokud je tento argument nastavený, ConnectionString musí být také nastaven. |
| Připojovací řetězec | Připojovací řetězec pro připojení k databázi. Pokud je tento argument nastavený, ProviderName musí být také nastaven. |
| TypPříkazu | DbCommand Typ spuštění. |
| Název konfigurace | 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 DataSet (typu Result out, který je definován v základní třídě TResult).AsyncCodeActivity<TResult>
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; }
}
| Důvod | Popis |
|---|---|
| Název poskytovatele | ADO.NET invariantní název zprostředkovatele. Pokud je tento argument nastavený, ConnectionString musí být také nastaven. |
| Připojovací řetězec | Připojovací řetězec pro připojení k databázi. Pokud je tento argument nastavený, ProviderName musí být také nastaven. |
| Název konfigurace | 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. |
| TypPříkazu | 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
Otevřete příkazový řádek.
Přejděte do ukázkové složky DbActivities.
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
- Otevřete řešení v sadě Visual Studio.
- Pokud chcete řešení zkompilovat, stiskněte kombinaci kláves Ctrl+Shift+B.
- 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