Commit 3ec25195 authored by yangxiaodong's avatar yangxiaodong

add dbcontext type to options.

parent a04076d2
......@@ -28,6 +28,7 @@ namespace Microsoft.Extensions.DependencyInjection
builder.Services.Configure(actionOptions);
var sqlServerOptions = new SqlServerOptions();
sqlServerOptions.DbContextType = typeof(TContext);
actionOptions(sqlServerOptions);
builder.Services.AddSingleton(sqlServerOptions);
......@@ -44,6 +45,6 @@ namespace Microsoft.Extensions.DependencyInjection
return builder;
}
}
}
\ No newline at end of file
......@@ -28,8 +28,7 @@ namespace DotNetCore.CAP.EntityFrameworkCore
/// <summary>
/// Gets or sets the <see cref="CapSentMessage"/> of Messages.
/// </summary>
public DbSet<CapSentMessage> CapSentMessages { get; set; }
public DbSet<CapSentMessage> CapSentMessages { get; set; }
public DbSet<CapQueue> CapQueue { get; set; }
......@@ -48,6 +47,7 @@ namespace DotNetCore.CAP.EntityFrameworkCore
/// </param>
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
//_sqlServerOptions = new SqlServerOptions();
modelBuilder.HasDefaultSchema(_sqlServerOptions.Schema);
modelBuilder.Entity<CapSentMessage>(b =>
......@@ -67,6 +67,7 @@ namespace DotNetCore.CAP.EntityFrameworkCore
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
// optionsBuilder.UseSqlServer("Server=192.168.2.206;Initial Catalog=Test;User Id=cmswuliu;Password=h7xY81agBn*Veiu3;MultipleActiveResultSets=True");
}
}
}
\ No newline at end of file
......@@ -32,7 +32,7 @@ namespace DotNetCore.CAP
}
public static async Task Publish(this ICapPublisher publisher, string topic, string content, IDbConnection connection,IDbTransaction transaction)
public static async Task Publish(this ICapPublisher publisher, string topic, string content, IDbConnection connection, IDbTransaction transaction)
{
var message = new CapSentMessage
{
......
......@@ -108,14 +108,14 @@ WHERE StateName = '{StatusName.Enqueued}'";
private async Task<IFetchedMessage> FetchNextMessageCoreAsync(string sql, object args = null)
{
FetchedMessage fetchedJob = null;
FetchedMessage fetchedMessage = null;
var connection = _context.GetDbConnection();
var transaction = _context.Database.CurrentTransaction;
transaction = transaction ?? await _context.Database.BeginTransactionAsync(IsolationLevel.ReadCommitted);
try
{
fetchedJob =
fetchedMessage =
(await connection.QueryAsync<FetchedMessage>(sql, args, transaction.GetDbTransaction()))
.FirstOrDefault();
}
......@@ -125,7 +125,7 @@ WHERE StateName = '{StatusName.Enqueued}'";
throw;
}
if (fetchedJob == null)
if (fetchedMessage == null)
{
transaction.Rollback();
transaction.Dispose();
......@@ -133,8 +133,8 @@ WHERE StateName = '{StatusName.Enqueued}'";
}
return new EFFetchedMessage(
fetchedJob.MessageId,
fetchedJob.Type,
fetchedMessage.MessageId,
fetchedMessage.Type,
connection,
transaction);
}
......
......@@ -31,5 +31,7 @@ namespace DotNetCore.CAP.EntityFrameworkCore
/// Default is <see cref="DefaultMigrationsHistoryTableName"/>.
/// </summary>
public string MigrationsHistoryTableName { get; set; } = DefaultMigrationsHistoryTableName;
public Type DbContextType { get; set; }
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment