Skip to content

Commit 478ec72

Browse files
committed
Merge branch 'release/3.0.0' into production
2 parents 9bbff47 + 3bca2b6 commit 478ec72

36 files changed

+395
-165
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ packages/*/*
1313
*.csproj.user
1414
Tests/*/TestResults/
1515
*.DotSettings.user
16+
Tests/**/*.db

CSF.Entities/CSF.Entities.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<Authors>craigfowler</Authors>
1212
<Title>Entity &amp; identity types</Title>
1313
<Description>Interfaces &amp; base types to describe ORM-mapped entities and their identities.</Description>
14-
<ReleaseVersion>2.0.3</ReleaseVersion>
14+
<ReleaseVersion>3.0.0</ReleaseVersion>
1515
<Version>$(ReleaseVersion)</Version>
1616
<PackageVersion>$(ReleaseVersion)</PackageVersion>
1717
<PackageLicenseExpression>MIT</PackageLicenseExpression>

CSF.Entities/Entity`1.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,19 @@ public override string ToString()
6666
object IEntity.IdentityValue
6767
{
6868
get { return IdentityValue; }
69-
set { IdentityValue = (TIdentity) value; }
69+
set { IdentityValue = ToIdentityType(value); }
70+
}
71+
72+
/// <summary>
73+
/// Converts a specified <paramref name="value"/> to the <typeparamref name="TIdentity"/> type.
74+
/// </summary>
75+
/// <returns>The converted value.</returns>
76+
/// <param name="value">The value to convert.</param>
77+
TIdentity ToIdentityType(object value)
78+
{
79+
var formatter = System.Globalization.CultureInfo.InvariantCulture;
80+
var converted = Convert.ChangeType(value, typeof(TIdentity), formatter);
81+
return (TIdentity)converted;
7082
}
7183

7284
Type IEntity.IdentityType => typeof(TIdentity);

CSF.ORM.Entities/CSF.ORM.Entities.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<Authors>craigfowler</Authors>
1414
<Title>ORM abstractions: Entity integration</Title>
1515
<Description>An integration between CSF.ORM and CSF.Entities, providing convenience functionality for projects which use both.</Description>
16-
<ReleaseVersion>2.0.3</ReleaseVersion>
16+
<ReleaseVersion>3.0.0</ReleaseVersion>
1717
<Version>$(ReleaseVersion)</Version>
1818
<PackageVersion>$(ReleaseVersion)</PackageVersion>
1919
<PackageLicenseExpression>MIT</PackageLicenseExpression>

CSF.ORM.NHibernate.Common/CSF.ORM.NHibernate.Common.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
<PropertyGroup>
1111
<IsPackable>false</IsPackable>
12-
<ReleaseVersion>2.0.3</ReleaseVersion>
12+
<ReleaseVersion>3.0.0</ReleaseVersion>
1313
<Version>$(ReleaseVersion)</Version>
1414
<SignAssembly>true</SignAssembly>
1515
<AssemblyOriginatorKeyFile>..\CSF-Software-OSS.snk</AssemblyOriginatorKeyFile>

CSF.ORM.NHibernate.Common/SessionAdapter.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,13 @@ public class SessionAdapter : IDataConnection, IGetsTransaction, IHasNativeImple
4444
/// Gets the native implementation which provides the service's functionality.
4545
/// </summary>
4646
/// <value>The native implementation.</value>
47-
public object NativeImplementation => session;
47+
public object NativeImplementation => session;
48+
49+
/// <summary>
50+
/// Gets a value indicating whether a transaction is currently active, created by this provider.
51+
/// </summary>
52+
/// <value><c>true</c> if is transaction is active; otherwise, <c>false</c>.</value>
53+
public bool IsTransactionActive => HasExistingTransaction;
4854

4955
/// <summary>
5056
/// Gets a persister object from the current connection.
@@ -91,8 +97,8 @@ public ITransaction GetTransaction()
9197
return provider.GetTransaction(session);
9298
}
9399

94-
bool HasExistingTransaction => session.Transaction?.IsActive == true;
95-
100+
bool HasExistingTransaction => session.Transaction?.IsActive == true;
101+
96102
#region IDisposable Support
97103
bool disposedValue;
98104

CSF.ORM.NHibernate4/CSF.ORM.NHibernate4.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<Authors>craigfowler</Authors>
1313
<Title>ORM abstractions: Implementation for NHibernate 4</Title>
1414
<Description>Implementation of the ORM abstractions for users of NHibernate version 4.x.</Description>
15-
<ReleaseVersion>2.0.3</ReleaseVersion>
15+
<ReleaseVersion>3.0.0</ReleaseVersion>
1616
<Version>$(ReleaseVersion)</Version>
1717
<PackageVersion>$(ReleaseVersion)</PackageVersion>
1818
<PackageLicenseExpression>MIT</PackageLicenseExpression>

CSF.ORM.NHibernate4/TransactionAdapter.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public void Commit()
5959
/// <summary>
6060
/// Commit this transaction to the back-end using an asynchronous API, where available.
6161
/// </summary>
62-
public void CommitAsync() => Task.Run(() => Commit());
62+
public Task CommitAsync() => Task.Run(() => Commit());
6363

6464
/// <summary>
6565
/// Rollback this instance.
@@ -78,7 +78,7 @@ public void Rollback()
7878
/// <summary>
7979
/// Roll the transaction back and abort changes using an asynchronous API, where available.
8080
/// </summary>
81-
public void RollbackAsync() => Task.Run(() => Rollback());
81+
public Task RollbackAsync() => Task.Run(() => Rollback());
8282

8383
#region IDisposable Support
8484
/// <summary>

CSF.ORM.NHibernate5/CSF.ORM.NHibernate5.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<Authors>craigfowler</Authors>
1313
<Title>ORM abstractions: Implementation for NHibernate 5</Title>
1414
<Description>Implementation of the ORM abstractions for users of NHibernate version 5.x.</Description>
15-
<ReleaseVersion>2.0.3</ReleaseVersion>
15+
<ReleaseVersion>3.0.0</ReleaseVersion>
1616
<Version>$(ReleaseVersion)</Version>
1717
<PackageVersion>$(ReleaseVersion)</PackageVersion>
1818
<PackageLicenseExpression>MIT</PackageLicenseExpression>

CSF.ORM.NHibernate5/TransactionAdapter.cs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Threading.Tasks;
23
using nh = NHibernate;
34

45
namespace CSF.ORM.NHibernate
@@ -57,14 +58,15 @@ public void Commit()
5758
/// <summary>
5859
/// Commit this transaction to the back-end using an asynchronous API, where available.
5960
/// </summary>
60-
public void CommitAsync()
61+
public Task CommitAsync()
6162
{
6263
AssertNotFinalised();
6364

6465
if (mayCommitAndDispose)
65-
transaction.CommitAsync();
66+
return transaction.CommitAsync();
6667

6768
IsFinal = true;
69+
return Task.CompletedTask;
6870
}
6971

7072
/// <summary>
@@ -84,17 +86,16 @@ public void Rollback()
8486
/// <summary>
8587
/// Roll the transaction back and abort changes using an asynchronous API, where available.
8688
/// </summary>
87-
public void RollbackAsync()
89+
public Task RollbackAsync()
8890
{
8991
if (transaction.WasRolledBack || IsFinal || disposedValue)
9092
{
9193
IsFinal = true;
92-
return;
94+
return Task.CompletedTask;
9395
}
9496

95-
transaction.RollbackAsync();
96-
9797
IsFinal = true;
98+
return transaction.RollbackAsync();
9899
}
99100

100101
void AssertNotFinalised()

0 commit comments

Comments
 (0)