Commit 3ec25195 authored by yangxiaodong's avatar yangxiaodong

add dbcontext type to options.

parent a04076d2
...@@ -28,6 +28,7 @@ namespace Microsoft.Extensions.DependencyInjection ...@@ -28,6 +28,7 @@ namespace Microsoft.Extensions.DependencyInjection
builder.Services.Configure(actionOptions); builder.Services.Configure(actionOptions);
var sqlServerOptions = new SqlServerOptions(); var sqlServerOptions = new SqlServerOptions();
sqlServerOptions.DbContextType = typeof(TContext);
actionOptions(sqlServerOptions); actionOptions(sqlServerOptions);
builder.Services.AddSingleton(sqlServerOptions); builder.Services.AddSingleton(sqlServerOptions);
......
...@@ -30,7 +30,6 @@ namespace DotNetCore.CAP.EntityFrameworkCore ...@@ -30,7 +30,6 @@ namespace DotNetCore.CAP.EntityFrameworkCore
/// </summary> /// </summary>
public DbSet<CapSentMessage> CapSentMessages { get; set; } public DbSet<CapSentMessage> CapSentMessages { get; set; }
public DbSet<CapQueue> CapQueue { get; set; } public DbSet<CapQueue> CapQueue { get; set; }
/// <summary> /// <summary>
...@@ -48,6 +47,7 @@ namespace DotNetCore.CAP.EntityFrameworkCore ...@@ -48,6 +47,7 @@ namespace DotNetCore.CAP.EntityFrameworkCore
/// </param> /// </param>
protected override void OnModelCreating(ModelBuilder modelBuilder) protected override void OnModelCreating(ModelBuilder modelBuilder)
{ {
//_sqlServerOptions = new SqlServerOptions();
modelBuilder.HasDefaultSchema(_sqlServerOptions.Schema); modelBuilder.HasDefaultSchema(_sqlServerOptions.Schema);
modelBuilder.Entity<CapSentMessage>(b => modelBuilder.Entity<CapSentMessage>(b =>
...@@ -67,6 +67,7 @@ namespace DotNetCore.CAP.EntityFrameworkCore ...@@ -67,6 +67,7 @@ namespace DotNetCore.CAP.EntityFrameworkCore
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) 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 ...@@ -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 var message = new CapSentMessage
{ {
......
...@@ -108,14 +108,14 @@ WHERE StateName = '{StatusName.Enqueued}'"; ...@@ -108,14 +108,14 @@ WHERE StateName = '{StatusName.Enqueued}'";
private async Task<IFetchedMessage> FetchNextMessageCoreAsync(string sql, object args = null) private async Task<IFetchedMessage> FetchNextMessageCoreAsync(string sql, object args = null)
{ {
FetchedMessage fetchedJob = null; FetchedMessage fetchedMessage = null;
var connection = _context.GetDbConnection(); var connection = _context.GetDbConnection();
var transaction = _context.Database.CurrentTransaction; var transaction = _context.Database.CurrentTransaction;
transaction = transaction ?? await _context.Database.BeginTransactionAsync(IsolationLevel.ReadCommitted); transaction = transaction ?? await _context.Database.BeginTransactionAsync(IsolationLevel.ReadCommitted);
try try
{ {
fetchedJob = fetchedMessage =
(await connection.QueryAsync<FetchedMessage>(sql, args, transaction.GetDbTransaction())) (await connection.QueryAsync<FetchedMessage>(sql, args, transaction.GetDbTransaction()))
.FirstOrDefault(); .FirstOrDefault();
} }
...@@ -125,7 +125,7 @@ WHERE StateName = '{StatusName.Enqueued}'"; ...@@ -125,7 +125,7 @@ WHERE StateName = '{StatusName.Enqueued}'";
throw; throw;
} }
if (fetchedJob == null) if (fetchedMessage == null)
{ {
transaction.Rollback(); transaction.Rollback();
transaction.Dispose(); transaction.Dispose();
...@@ -133,8 +133,8 @@ WHERE StateName = '{StatusName.Enqueued}'"; ...@@ -133,8 +133,8 @@ WHERE StateName = '{StatusName.Enqueued}'";
} }
return new EFFetchedMessage( return new EFFetchedMessage(
fetchedJob.MessageId, fetchedMessage.MessageId,
fetchedJob.Type, fetchedMessage.Type,
connection, connection,
transaction); transaction);
} }
......
...@@ -31,5 +31,7 @@ namespace DotNetCore.CAP.EntityFrameworkCore ...@@ -31,5 +31,7 @@ namespace DotNetCore.CAP.EntityFrameworkCore
/// Default is <see cref="DefaultMigrationsHistoryTableName"/>. /// Default is <see cref="DefaultMigrationsHistoryTableName"/>.
/// </summary> /// </summary>
public string MigrationsHistoryTableName { get; set; } = DefaultMigrationsHistoryTableName; 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