diff --git a/global.json b/global.json
deleted file mode 100644
index ad1cbff..0000000
--- a/global.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "sdk": {
- "version": "2.1.302"
- }
-}
\ No newline at end of file
diff --git a/src/Orleans.Persistence.Cassandra/Orleans.Persistence.Cassandra.csproj b/src/Orleans.Persistence.Cassandra/Orleans.Persistence.Cassandra.csproj
index ca1f553..87a6cda 100644
--- a/src/Orleans.Persistence.Cassandra/Orleans.Persistence.Cassandra.csproj
+++ b/src/Orleans.Persistence.Cassandra/Orleans.Persistence.Cassandra.csproj
@@ -1,10 +1,12 @@
- netstandard2.0
+ net7.0
+ warnings
-
-
-
+
+
+
+
diff --git a/src/Orleans.Persistence.Cassandra/Storage/CassandraGrainStorage.cs b/src/Orleans.Persistence.Cassandra/Storage/CassandraGrainStorage.cs
index 968549d..50ff3b6 100644
--- a/src/Orleans.Persistence.Cassandra/Storage/CassandraGrainStorage.cs
+++ b/src/Orleans.Persistence.Cassandra/Storage/CassandraGrainStorage.cs
@@ -1,370 +1,387 @@
-using System;
-using System.Collections.Generic;
-using System.Threading;
-using System.Threading.Tasks;
-
-using Cassandra;
-using Cassandra.Data.Linq;
-using Cassandra.Mapping;
-
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Logging;
-using Microsoft.Extensions.Options;
-
-using Newtonsoft.Json;
-
-using Orleans.Configuration;
-using Orleans.Persistence.Cassandra.Concurrency;
-using Orleans.Persistence.Cassandra.Models;
-using Orleans.Persistence.Cassandra.Options;
-using Orleans.Runtime;
-using Orleans.Serialization;
-using Orleans.Storage;
-
-namespace Orleans.Persistence.Cassandra.Storage
-{
- internal sealed class CassandraGrainStorage : IGrainStorage, ILifecycleParticipant
- {
- private const ConsistencyLevel SerialConsistencyLevel = ConsistencyLevel.Serial;
- private const ConsistencyLevel DefaultConsistencyLevel = ConsistencyLevel.Quorum;
-
- private static readonly CqlQueryOptions SerialConsistencyQueryOptions =
- CqlQueryOptions.New().SetSerialConsistencyLevel(SerialConsistencyLevel);
-
- private static readonly CqlQueryOptions DefaultConsistencyQueryOptions =
- CqlQueryOptions.New().SetConsistencyLevel(DefaultConsistencyLevel);
-
- private readonly string _name;
- private readonly string _serviceId;
- private readonly CassandraStorageOptions _cassandraStorageOptions;
- private readonly ILogger _logger;
- private readonly IGrainFactory _grainFactory;
- private readonly ITypeResolver _typeResolver;
- private readonly HashSet _concurrentStateTypes;
-
- private JsonSerializerSettings _jsonSettings;
- private Cluster _cluster;
- private Mapper _mapper;
-
- public CassandraGrainStorage(
- string name,
- CassandraStorageOptions cassandraStorageOptions,
- IOptions clusterOptions,
- ILogger logger,
- IGrainFactory grainFactory,
- ITypeResolver typeResolver,
- IConcurrentGrainStateTypesProvider concurrentGrainStateTypesProvider,
- ILoggerProvider loggerProvider)
- {
- _name = name;
- _serviceId = clusterOptions.Value.ServiceId;
- _cassandraStorageOptions = cassandraStorageOptions;
- _logger = logger;
- _grainFactory = grainFactory;
- _typeResolver = typeResolver;
- _concurrentStateTypes = new HashSet(concurrentGrainStateTypesProvider.GetGrainStateTypes());
-
- Diagnostics.CassandraPerformanceCountersEnabled = _cassandraStorageOptions.Diagnostics.PerformanceCountersEnabled;
- Diagnostics.CassandraStackTraceIncluded = _cassandraStorageOptions.Diagnostics.StackTraceIncluded;
-
- if (loggerProvider != null)
- {
- Diagnostics.AddLoggerProvider(loggerProvider);
- }
- }
-
- public async Task ReadStateAsync(string grainType, GrainReference grainReference, IGrainState grainState)
- {
- var isConcurrentState = _concurrentStateTypes.Contains(grainState.State.GetType());
- var (_, cassandraState) = await GetCassandraGrainState(grainType, grainReference, isConcurrentState);
- if (cassandraState != null)
- {
- grainState.State = JsonConvert.DeserializeObject