Aracılığıyla paylaş


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şmenin bilgileri almasına veya değiştirmesine ve veritabanına erişmek için ADO.NET kullanmasına 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 özelliğinde Sql yapılandırılır ve parametreler koleksiyondan geçirilir Parameters .

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, öğesinin ConnectionString 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 olmadığında.
KomutTürü Yürütülecek öğesinin DbCommand türü.
SQL Yürütülecek SQL komutu.
Parametreler SQL sorgusunun parametrelerinin koleksiyonu.
EtkilenenKayı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 özelliğinde Sql yapılandırılır ve parametreler koleksiyondan geçirilir Parameters .

Yürütüldükten sonraDbQueryScalar, skaler bağımsız değişkeninde Result out döndürülür (temel sınıfta TResulttanımlanan türündeAsyncCodeActivity<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; }
}
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, öğesinin ConnectionString 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.
KomutTürü Yürütülecek öğesinin 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 olmadığında.
SQL Yürütülecek SQL komutu.
Parametreler SQL sorgusunun parametrelerinin koleksiyonu.
Sonuç Sorgu yürütüldükten sonra elde edilen Skaler. Bu bağımsız değişken türündedir TResult.

Ö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 (, veya Func<TResult><DbDataReader, TResult>olabilir).ActivityFunc<TResult><DbDataReaderTResult> 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 özelliğinde Sql yapılandırılır ve parametreler koleksiyondan geçirilir Parameters .

SQL sorgusunun sonuçları kullanılarak DbDataReaderalınır. Etkinlik içinde DbDataReader yinelenir ve içindeki DbDataReader satırları bir örneğine TResulteş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 yürütme darbesinde yapılır. Bu nedenle, daha hızlıdır, ancak bu XAML'ye serileştirilemez. Son durumda harita birden çok darbede 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, öğesinin ConnectionString 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.
KomutTürü Yürütülecek öğesinin 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 olmadığında.
SQL Yürütülecek SQL komutu.
Parametreler SQL sorgusunun parametrelerinin koleksiyonu.
Eşleştiricisi Sorgu yürütülürken elde edilen içindeki bir kaydı alan ve koleksiyona eklenecek Func<TResult> türde < bir nesnenin örneğini döndüren eşleme işlevi (DbDataReaderTResult>, DataReaderTResult).Result

Bu durumda, eşleme tek bir yürütme darbesinde yapılır, ancak tasarımcı kullanılarak bildirimli olarak yazılamaz.
MapperFunc Sorgu yürütülürken elde edilen içindeki bir kaydı alan ve koleksiyona eklenecek ActivityFunc<TResult> türde < bir nesnenin örneğini döndüren eşleme işlevi (DbDataReaderTResult>, DataReaderTResult).Result

Bu durumda eşleme, yürütmenin birden çok darbesinde 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

döndüren bir DataSetsorgu yürütür. Bu sınıf, çalışmasını zaman uyumsuz olarak gerçekleştirir. kaynaklarından 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 özelliğinde Sql yapılandırılır ve parametreler koleksiyondan geçirilir Parameters .

DbQueryDataSet yürütüldükten DataSet sonra bağımsız değişkeninde Result out döndürülür (TResulttürü, temel sınıfında AsyncCodeActivity<TResult>tanımlanır).

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, öğesinin ConnectionString 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 olmadığında.
KomutTürü Yürütülecek öğesinin DbCommand türü.
SQL Yürütülecek SQL komutu.
Parametreler SQL sorgusunun parametrelerinin koleksiyonu.
Sonuç DataSet sorgu yürütüldükten sonra 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ı sabit adını ve bağlantı dizesi 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 örneği yerel makinenizde SqlExpress örneğine yüklemeyi dener. Başka bir SQL server örneğine yüklemek istiyorsanız, yeni örnek adıyla Setup.cmd düzenleyin.

Örnek ç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