Skip to content

Commit b46ffe9

Browse files
author
Bart Koelman
committed
Changed TransactionId from Guid to String, to make it easier to support non-EF Core scenarios.
1 parent a6aec8a commit b46ffe9

File tree

9 files changed

+9
-15
lines changed

9 files changed

+9
-15
lines changed

src/JsonApiDotNetCore/AtomicOperations/EntityFrameworkCoreTransaction.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using System;
21
using System.Threading;
32
using System.Threading.Tasks;
43
using JetBrains.Annotations;
@@ -18,7 +17,7 @@ public sealed class EntityFrameworkCoreTransaction : IOperationsTransaction
1817
private readonly DbContext _dbContext;
1918

2019
/// <inheritdoc />
21-
public Guid TransactionId => _transaction.TransactionId;
20+
public string TransactionId => _transaction.TransactionId.ToString();
2221

2322
public EntityFrameworkCoreTransaction(IDbContextTransaction transaction, DbContext dbContext)
2423
{

src/JsonApiDotNetCore/AtomicOperations/IOperationsTransaction.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public interface IOperationsTransaction : IAsyncDisposable
1414
/// <summary>
1515
/// Identifies the active transaction.
1616
/// </summary>
17-
Guid TransactionId { get; }
17+
string TransactionId { get; }
1818

1919
/// <summary>
2020
/// Enables to execute custom logic before processing of an operation starts.

src/JsonApiDotNetCore/Middleware/IJsonApiRequest.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using System;
21
using JsonApiDotNetCore.Configuration;
32
using JsonApiDotNetCore.Resources.Annotations;
43

@@ -65,7 +64,7 @@ public interface IJsonApiRequest
6564
/// <summary>
6665
/// In case of an atomic:operations request, identifies the overarching transaction.
6766
/// </summary>
68-
Guid? TransactionId { get; }
67+
string TransactionId { get; }
6968

7069
/// <summary>
7170
/// Performs a shallow copy.

src/JsonApiDotNetCore/Middleware/JsonApiRequest.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using System;
21
using JetBrains.Annotations;
32
using JsonApiDotNetCore.Configuration;
43
using JsonApiDotNetCore.Resources.Annotations;
@@ -37,7 +36,7 @@ public sealed class JsonApiRequest : IJsonApiRequest
3736
public OperationKind? OperationKind { get; set; }
3837

3938
/// <inheritdoc />
40-
public Guid? TransactionId { get; set; }
39+
public string TransactionId { get; set; }
4140

4241
/// <inheritdoc />
4342
public void CopyFrom(IJsonApiRequest other)

src/JsonApiDotNetCore/Repositories/EntityFrameworkCoreRepository.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public class EntityFrameworkCoreRepository<TResource, TId> : IResourceRepository
3737
private readonly TraceLogWriter<EntityFrameworkCoreRepository<TResource, TId>> _traceWriter;
3838

3939
/// <inheritdoc />
40-
public virtual Guid? TransactionId => _dbContext.Database.CurrentTransaction?.TransactionId;
40+
public virtual string TransactionId => _dbContext.Database.CurrentTransaction?.TransactionId.ToString();
4141

4242
public EntityFrameworkCoreRepository(ITargetedFields targetedFields, IDbContextResolver contextResolver, IResourceGraph resourceGraph,
4343
IResourceFactory resourceFactory, IEnumerable<IQueryConstraintProvider> constraintProviders, ILoggerFactory loggerFactory)

src/JsonApiDotNetCore/Repositories/IRepositorySupportsTransaction.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using System;
21
using JetBrains.Annotations;
32

43
namespace JsonApiDotNetCore.Repositories
@@ -12,6 +11,6 @@ public interface IRepositorySupportsTransaction
1211
/// <summary>
1312
/// Identifies the currently active transaction.
1413
/// </summary>
15-
Guid? TransactionId { get; }
14+
string TransactionId { get; }
1615
}
1716
}

src/JsonApiDotNetCore/Resources/OperationContainer.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using System;
21
using System.Collections.Generic;
32
using JetBrains.Annotations;
43
using JsonApiDotNetCore.Middleware;
@@ -31,7 +30,7 @@ public OperationContainer(OperationKind kind, IIdentifiable resource, ITargetedF
3130
Request = request;
3231
}
3332

34-
public void SetTransactionId(Guid transactionId)
33+
public void SetTransactionId(string transactionId)
3534
{
3635
((JsonApiRequest)Request).TransactionId = transactionId;
3736
}

test/JsonApiDotNetCoreExampleTests/IntegrationTests/AtomicOperations/Transactions/LyricRepository.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using System;
21
using System.Collections.Generic;
32
using JetBrains.Annotations;
43
using JsonApiDotNetCore.Configuration;
@@ -14,7 +13,7 @@ public sealed class LyricRepository : EntityFrameworkCoreRepository<Lyric, long>
1413
{
1514
private readonly ExtraDbContext _extraDbContext;
1615

17-
public override Guid? TransactionId => _extraDbContext.Database.CurrentTransaction.TransactionId;
16+
public override string TransactionId => _extraDbContext.Database.CurrentTransaction.TransactionId.ToString();
1817

1918
public LyricRepository(ExtraDbContext extraDbContext, ITargetedFields targetedFields, IDbContextResolver contextResolver, IResourceGraph resourceGraph,
2019
IResourceFactory resourceFactory, IEnumerable<IQueryConstraintProvider> constraintProviders, ILoggerFactory loggerFactory)

test/JsonApiDotNetCoreExampleTests/IntegrationTests/AtomicOperations/Transactions/MusicTrackRepository.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ namespace JsonApiDotNetCoreExampleTests.IntegrationTests.AtomicOperations.Transa
1212
[UsedImplicitly(ImplicitUseKindFlags.InstantiatedNoFixedConstructorSignature)]
1313
public sealed class MusicTrackRepository : EntityFrameworkCoreRepository<MusicTrack, Guid>
1414
{
15-
public override Guid? TransactionId => null;
15+
public override string TransactionId => null;
1616

1717
public MusicTrackRepository(ITargetedFields targetedFields, IDbContextResolver contextResolver, IResourceGraph resourceGraph,
1818
IResourceFactory resourceFactory, IEnumerable<IQueryConstraintProvider> constraintProviders, ILoggerFactory loggerFactory)

0 commit comments

Comments
 (0)