Skip to content

SQL Server

SQL Server is a relational database management system developed by Microsoft. CAP fully supports SQL Server.

Warning

We currently use Microsoft.Data.SqlClient as the database driver, which is the future of SQL Server drivers. We have deprecated System.Data.SqlClient and recommend upgrading to the new driver.

Configuration

To use SQL Server storage, you need to install the following package from NuGet:

PM> Install-Package DotNetCore.CAP.SqlServer

Next, add configuration items to the ConfigureServices method of Startup.cs.

public void ConfigureServices(IServiceCollection services)
{
    // ...

    services.AddCap(x =>
    {
        x.UseSqlServer(opt=>{
            //SqlServerOptions
        }); 
        // x.UseXXX ...
    });
}

SqlServerOptions

NAME DESCRIPTION TYPE DEFAULT
Schema Database schema string Cap
ConnectionString Database connection string string

Publish with transaction

ADO.NET with Transaction

private readonly ICapPublisher _capBus;

using (var connection = new SqlConnection("ConnectionString"))
{
    using (var transaction = connection.BeginTransaction(_capBus, autoCommit: false))
    {
        // Your business code
        connection.Execute("insert into test(name) values('test')", 
            transaction: (IDbTransaction)transaction.DbTransaction);

        _capBus.Publish("sample.rabbitmq.mysql", DateTime.Now);

        transaction.Commit();
    }
}

Entity Framework with Transaction

private readonly ICapPublisher _capBus;

using (var trans = dbContext.Database.BeginTransaction(_capBus, autoCommit: false))
{
    dbContext.Persons.Add(new Person() { Name = "ef.transaction" });

    _capBus.Publish("sample.rabbitmq.mysql", DateTime.Now);

    dbContext.SaveChanges();
    trans.Commit();
}