Veritabanı erişim etkinlikleri

Veritabanı erişim etkinlikleri, bir iş akışı içindeki bir veritabanına erişmenizi sağlar. Bu etkinlikler, veritabanlarına erişerek bilgileri almanıza veya değiştirmenize ve ADO.NET kullanarak veritabanına erişmenize olanak sağlar.

Veritabanı etkinlikleri

Aşağıdaki bölümlerde DbActivities örneğine dahil edilen etkinliklerin listesi ayrıntılı olarak verilmiştir.

DbUpdate

Veritabanında değişiklik üreten bir SQL sorgusu yürütür (ekleme, güncelleştirme, silme ve diğer değişiklikler).

Bu sınıf, çalışmasını zaman uyumsuz olarak gerçekleştirir (öğesinden AsyncCodeActivity türetilir ve zaman uyumsuz özelliklerini kullanır).

Bağlantı bilgileri, sağlayıcı sabit adı () ve bağlantı dizesi (ProviderNameConnectionString) ayarlanarak veya yalnızca uygulama yapılandırma dosyasından bir bağlantı dizesi yapılandırma adı (ConfigFileSectionName) kullanılarak yapılandırılabilir.

Önemli

Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Azure SQL'e bağlanıyorsanız önerilen kimlik doğrulama yöntemi Azure kaynakları için Yönetilen Kimlikler'dir.

Yürütülecek sorgu, Sql özelliğinde yapılandırılır ve parametreler Parameters koleksiyonu üzerinden iletilir.

Yürütüldükten sonra DbUpdate , özelliğinde etkilenen kayıtların AffectedRecords sayısı döndürülür.

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; }
}
Bağımsız değişken Açıklama
SağlayıcıAdı ADO.NET sağlayıcı sabit adı. Bu bağımsız değişken ayarlanırsa, ConnectionString öğesinin de ayarlanması gerekir.
BağlantıDizesi Veritabanına bağlanmak için bağlantı dizesi. Bu bağımsız değişken ayarlandıysa, o zaman ProviderName da ayarlanmalıdır.
AyarAdı Bağlantı bilgilerinin depolandığı yapılandırma dosyası bölümünün adı. Bu bağımsız değişken ayarlandığında ProviderName ve ConnectionString gerekli değildir.
KomutTürü Yürütülecek DbCommand'nin türü.
SQL Yürütülecek SQL komutu.
Parametreler SQL sorgusunun parametrelerinin koleksiyonu.
Etkilenen Kayıtlar Son işlemden etkilenen kayıt sayısı.

Önemli

Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Azure SQL'e bağlanıyorsanız önerilen kimlik doğrulama yöntemi Azure kaynakları için Yönetilen Kimlikler'dir.

DbQueryScalar fonksiyonu

Veritabanından tek bir değer alan bir sorgu yürütür.

Bu sınıf, çalışmasını zaman uyumsuz olarak gerçekleştirir (öğesinden AsyncCodeActivity<TResult> türetilir ve zaman uyumsuz özelliklerini kullanır).

Bağlantı bilgileri, sağlayıcı sabit adı () ve bağlantı dizesi (ProviderNameConnectionString) ayarlanarak veya yalnızca uygulama yapılandırma dosyasından bir bağlantı dizesi yapılandırma adı (ConfigFileSectionName) kullanılarak yapılandırılabilir.

Önemli

Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Azure SQL'e bağlanıyorsanız önerilen kimlik doğrulama yöntemi Azure kaynakları için Yönetilen Kimlikler'dir.

Yürütülecek sorgu Sql özelliğinde yapılandırılır ve parametreler Parameters koleksiyonundan geçirilir.

Yürütüldükten sonra DbQueryScalar, skaler Result out argümanında döndürülür (temel sınıftaki AsyncCodeActivity<TResult> tanımlanan TResult türünde).

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; }
}
Bağımsız değişken Açıklama
SağlayıcıAdı ADO.NET sağlayıcı değişmez adı. Bu bağımsız değişken ayarlanırsa, ConnectionString de ayarlanmalıdır.
BağlantıDizesi Veritabanına bağlanmak için bağlantı dizesi. Bu bağımsız değişken ayarlandıysa, o zaman ProviderName da ayarlanmalıdır.
KomutTürü Yürütülecek nesnenin DbCommand türü.
AyarAdı Bağlantı bilgilerinin depolandığı yapılandırma dosyası bölümünün adı. Bu bağımsız değişken ayarlandığında ProviderName ve ConnectionString gerekli değildir.
SQL Yürütülecek SQL komutu.
Parametreler SQL sorgusunun parametrelerinin koleksiyonu.
Sonuç Sorgu yürütüldükten sonra elde edilen skaler değer. Bu bağımsız değişkenin türü TResult'dir.

Önemli

Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Azure SQL'e bağlanıyorsanız önerilen kimlik doğrulama yöntemi Azure kaynakları için Yönetilen Kimlikler'dir.

DbQuery

Nesnelerin listesini alan bir sorgu yürütür. Sorgu yürütüldükten sonra bir eşleme işlevi yürütülür (bu Func<TResult><DbDataReader, TResult> veya ActivityFunc<TResult><DbDataReader, TResult> olabilir). Bu eşleme işlevi içindeki DbDataReader bir kaydı alır ve döndürülecek nesneyle eşler.

Bağlantı bilgileri, sağlayıcı sabit adı () ve bağlantı dizesi (ProviderNameConnectionString) ayarlanarak veya yalnızca uygulama yapılandırma dosyasından bir bağlantı dizesi yapılandırma adı (ConfigFileSectionName) kullanılarak yapılandırılabilir.

Önemli

Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Azure SQL'e bağlanıyorsanız önerilen kimlik doğrulama yöntemi Azure kaynakları için Yönetilen Kimlikler'dir.

Yürütülecek sorgu, Sql özelliğinde yapılandırılır ve parametreler Parameters koleksiyonundan geçirilir.

SQL sorgusunun sonuçları bir DbDataReader kullanılarak alınır. Etkinlik, DbDataReader üzerinden yinelenir ve DbDataReader içindeki satırları bir TResult örneğine eşler. kullanıcısının DbQuery eşleme kodunu sağlaması gerekir ve bu iki yolla yapılabilir: , Func<TResult><DbDataReaderTResult> veyaActivityFunc<TResult><DbDataReader kullanarak . TResult> İlk durumda, harita tek bir işlem döngüsünde yapılır. Bu nedenle, daha hızlıdır, ancak bu XAML'ye serileştirilemez. Son durumda, haritalama birden fazla darbeyle gerçekleştirilir. Bu nedenle, daha yavaş olabilir, ancak XAML'ye seri hale getirilebilir ve bildirim temelli olarak yazılabilir (mevcut tüm etkinlikler eşlemeye katılabilir).

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; }
}
Bağımsız değişken Açıklama
SağlayıcıAdı ADO.NET sağlayıcı sabit adı. Bu bağımsız değişken ayarlanırsa, ConnectionString da mutlaka ayarlanmalıdır.
BağlantıDizesi Veritabanına bağlanmak için bağlantı dizesi. Bu bağımsız değişken ayarlandıysa, o zaman ProviderName da ayarlanmalıdır.
KomutTürü Yürütülecek nesnenin DbCommand türü.
AyarAdı Bağlantı bilgilerinin depolandığı yapılandırma dosyası bölümünün adı. Bu bağımsız değişken ayarlandığında ProviderName ve ConnectionString gerekli değildir.
SQL Yürütülecek SQL komutu.
Parametreler SQL sorgusunun parametrelerinin koleksiyonu.
Eşleyici Sorgu çalıştırılarak elde edilen DataReader içindeki bir kaydı alan ve Result koleksiyonuna eklenecek TResult türünde bir nesne örneği döndüren eşleme işlevi (Func<TResult><DbDataReader, TResult>).

Bu durumda, haritalama tek bir yürütme darbesinde yapılır, ancak tasarımcı kullanılarak bildirimli olarak oluşturulamaz.
MapperFunc Sorgu yürütülmesi sonucunda elde edilen DataReader içindeki kaydı alarak, Result koleksiyonuna eklenecek ActivityFunc<TResult> tipi bir nesne örneği döndüren eşleştirme işlevi (DbDataReaderTResult>, DataReaderTResult).

Bu durumda eşleme, çalışmanın birden çok aşamasında gerçekleştirilir. Bu işlev XAML'ye seri hale getirilebilir ve bildirim temelli olarak yazılabilir (mevcut tüm etkinlikler eşlemeye katılabilir).
Sonuç Sorgunun yürütülmesi ve içindeki her kayıt DataReaderiçin eşleme işlevinin yürütülmesi sonucu elde edilen nesnelerin listesi.

Önemli

Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Azure SQL'e bağlanıyorsanız önerilen kimlik doğrulama yöntemi Azure kaynakları için Yönetilen Kimlikler'dir.

DbQueryDataSet

Bir DataSet döndüren sorguyu yürütür. Bu sınıf, çalışmasını zaman uyumsuz olarak gerçekleştirir. AsyncCodeActivity < TResult >'ten türetilir ve asenkron özelliklerini kullanır.

Bağlantı bilgileri, sağlayıcı sabit adı () ve bağlantı dizesi (ProviderNameConnectionString) ayarlanarak veya yalnızca uygulama yapılandırma dosyasından bir bağlantı dizesi yapılandırma adı (ConfigFileSectionName) kullanılarak yapılandırılabilir.

Önemli

Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Azure SQL'e bağlanıyorsanız önerilen kimlik doğrulama yöntemi Azure kaynakları için Yönetilen Kimlikler'dir.

Yürütülecek sorgu, Sql özelliğinde yapılandırılır ve parametreler Parameters koleksiyonu aracılığıyla iletilir.

DbQueryDataSet yürütüldükten sonra DataSet, belirtilen bağımsız değişken Result out'de döndürülür (bu, temel sınıfta tanımlanan TResult türüdür 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; }
}
Bağımsız değişken Açıklama
SağlayıcıAdı ADO.NET sağlayıcı sabit adı. Bu bağımsız değişken ayarlanırsa, ConnectionString'nin de ayarlanması gerekir.
BağlantıDizesi Veritabanına bağlanmak için bağlantı dizesi. Bu bağımsız değişken ayarlandıysa, o zaman ProviderName da ayarlanmalıdır.
AyarAdı Bağlantı bilgilerinin depolandığı yapılandırma dosyası bölümünün adı. Bu bağımsız değişken ayarlandığında ProviderName ve ConnectionString gerekli değildir.
KomutTürü Yürütülecek öğesinin DbCommand türü.
SQL Yürütülecek SQL komutu.
Parametreler SQL sorgusunun parametrelerinin koleksiyonu.
Sonuç Sorgu yürütüldükten sonra DataSet elde edilir.

Önemli

Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Azure SQL'e bağlanıyorsanız önerilen kimlik doğrulama yöntemi Azure kaynakları için Yönetilen Kimlikler'dir.

Bağlantı bilgilerini yapılandırma

Tüm DbActivities aynı yapılandırma parametrelerini paylaşır. Bunlar iki şekilde yapılandırılabilir:

  • ConnectionString + InvariantName: ADO.NET sağlayıcısının sabit adını ve bağlantı dizesini ayarlayın.

    Activity dbSelectCount = new DbQueryScalar<DateTime>()
    {
        ProviderName = "System.Data.SqlClient",
        ConnectionString = @"Data Source=.\SQLExpress;
                              Initial Catalog=DbActivitiesSample;
                              Integrated Security=True",
        Sql = "SELECT GetDate()"
    };
    
  • ConfigName: Bağlantı bilgilerini içeren yapılandırma bölümünün adını ayarlayın.

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

    Etkinlikte:

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

Önemli

Microsoft, kullanılabilir en güvenli kimlik doğrulama akışını kullanmanızı önerir. Azure SQL'e bağlanıyorsanız önerilen kimlik doğrulama yöntemi Azure kaynakları için Yönetilen Kimlikler'dir.

Bu örneği çalıştırın

Kurulum yönergeleri

Bu örnek bir veritabanı kullanır. Örnekle birlikte bir kurulum ve yükleme betiği (Setup.cmd) sağlanır. Bu dosyayı komut istemini kullanarak yürütmeniz gerekir.

Setup.cmd betiği, aşağıdakileri yapan SQL komutlarını içeren CreateDb.sql betik dosyasını çağırır:

  • DbActivitiesSample adlı bir veritabanı oluşturur.
  • Roller tablosunu oluşturur.
  • Çalışanlar tablosunu oluşturur.
  • Roller tablosuna üç kayıt ekler.
  • Çalışanlar tablosuna on iki kayıt ekler.

Setup.cmd çalıştırmak için

  1. Komut istemi açın.

  2. DbActivities örnek klasörüne gidin.

  3. "setup.cmd" yazın ve Enter tuşuna basın.

    Not

    Setup.cmd yerel makinenizdeki SqlExpress örneğine örneği yüklemeye çalışır. Başka bir SQL server örneğine yüklemek istiyorsanız, yeni örnek adıyla Setup.cmd düzenleyin.

Örneği çalıştırmak için

  1. çözümünü Visual Studio’da açın.
  2. Çözümü derlemek için Ctrl+Shift+B tuşlarına basın.
  3. Örneği hata ayıklamadan çalıştırmak için Ctrl+F5 tuşlarına basın.

Örnek veritabanını kaldırmak için bir komut isteminde örnek klasörden Cleanup.cmd çalıştırın.

Önemli

Örnekler makinenize zaten yüklenmiş olabilir. Devam etmeden önce aşağıdaki (varsayılan) dizini denetleyin.

<InstallDrive>:\WF_WCF_Samples

Bu dizin yoksa, tüm Windows Communication Foundation (WCF) ve WF örneklerini indirmek için .NET Framework 4 için Windows Communication Foundation (WCF) ve Windows Workflow Foundation (WF) Örnekleri'ne gidin. Bu örnek aşağıdaki dizinde bulunur.

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