Przeglądaj źródła

add dbcontext type to options.

master
yangxiaodong 7 lat temu
rodzic
commit
3ec25195e7
5 zmienionych plików z 13 dodań i 9 usunięć
  1. +2
    -1
      src/DotNetCore.CAP.EntityFrameworkCore/CAP.BuilderExtensions.cs
  2. +3
    -2
      src/DotNetCore.CAP.EntityFrameworkCore/CapDbContext.cs
  3. +1
    -1
      src/DotNetCore.CAP.EntityFrameworkCore/CapPublisherExtensions.cs
  4. +5
    -5
      src/DotNetCore.CAP.EntityFrameworkCore/EFStorageConnection.cs
  5. +2
    -0
      src/DotNetCore.CAP.EntityFrameworkCore/SqlServerOptions.cs

+ 2
- 1
src/DotNetCore.CAP.EntityFrameworkCore/CAP.BuilderExtensions.cs Wyświetl plik

@@ -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);


@@ -44,6 +45,6 @@ namespace Microsoft.Extensions.DependencyInjection
return builder; return builder;
} }


} }
} }

+ 3
- 2
src/DotNetCore.CAP.EntityFrameworkCore/CapDbContext.cs Wyświetl plik

@@ -28,8 +28,7 @@ namespace DotNetCore.CAP.EntityFrameworkCore
/// <summary> /// <summary>
/// Gets or sets the <see cref="CapSentMessage"/> of Messages. /// Gets or sets the <see cref="CapSentMessage"/> of Messages.
/// </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; }


@@ -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


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");
} }
} }
} }

+ 1
- 1
src/DotNetCore.CAP.EntityFrameworkCore/CapPublisherExtensions.cs Wyświetl plik

@@ -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
{ {


+ 5
- 5
src/DotNetCore.CAP.EntityFrameworkCore/EFStorageConnection.cs Wyświetl plik

@@ -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}'";
throw; throw;
} }


if (fetchedJob == null)
if (fetchedMessage == null)
{ {
transaction.Rollback(); transaction.Rollback();
transaction.Dispose(); transaction.Dispose();
@@ -133,8 +133,8 @@ WHERE StateName = '{StatusName.Enqueued}'";
} }


return new EFFetchedMessage( return new EFFetchedMessage(
fetchedJob.MessageId,
fetchedJob.Type,
fetchedMessage.MessageId,
fetchedMessage.Type,
connection, connection,
transaction); transaction);
} }


+ 2
- 0
src/DotNetCore.CAP.EntityFrameworkCore/SqlServerOptions.cs Wyświetl plik

@@ -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; }
} }
} }

Ładowanie…
Anuluj
Zapisz