소스 검색

Fix SQL Server tranaction error in entityframework. #402

master
Savorboard 5 년 전
부모
커밋
5df6c76c8a
1개의 변경된 파일2개의 추가작업 그리고 11개의 파일을 삭제
  1. +2
    -11
      src/DotNetCore.CAP.SqlServer/ICapTransaction.SqlServer.cs

+ 2
- 11
src/DotNetCore.CAP.SqlServer/ICapTransaction.SqlServer.cs 파일 보기

@@ -11,29 +11,22 @@ using DotNetCore.CAP.Persistence;
using DotNetCore.CAP.SqlServer.Diagnostics;
using DotNetCore.CAP.Transport;
using Microsoft.Data.SqlClient;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;

// ReSharper disable once CheckNamespace
namespace DotNetCore.CAP
{
public class SqlServerCapTransaction : CapTransactionBase
{
private readonly DbContext _dbContext;
private readonly DiagnosticProcessorObserver _diagnosticProcessor;

public SqlServerCapTransaction(
IDispatcher dispatcher,
IServiceProvider serviceProvider) : base(dispatcher)
DiagnosticProcessorObserver diagnosticProcessor) : base(dispatcher)
{
var sqlServerOptions = serviceProvider.GetService<IOptions<SqlServerOptions>>().Value;
if (sqlServerOptions.DbContextType != null)
_dbContext = serviceProvider.GetService(sqlServerOptions.DbContextType) as DbContext;

_diagnosticProcessor = serviceProvider.GetRequiredService<DiagnosticProcessorObserver>();
_diagnosticProcessor = diagnosticProcessor;
}

protected override void AddToSent(MediumMessage msg)
@@ -76,7 +69,6 @@ namespace DotNetCore.CAP
dbTransaction.Commit();
break;
case IDbContextTransaction dbContextTransaction:
_dbContext?.SaveChanges();
dbContextTransaction.Commit();
break;
}
@@ -93,7 +85,6 @@ namespace DotNetCore.CAP
dbTransaction.Commit();
break;
case IDbContextTransaction dbContextTransaction:
await _dbContext.SaveChangesAsync(cancellationToken);
await dbContextTransaction.CommitAsync(cancellationToken);
break;
}


불러오는 중...
취소
저장