# AdoNetGrainStorage

Package: [Microsoft.Orleans.Persistence.AdoNet](/orleans/docs/api/csharp/microsoft.orleans.persistence.adonet/) 10.0.0

[NuGet package](https://www.nuget.org/packages/Microsoft.Orleans.Persistence.AdoNet) | [Source](https://github.com/dotnet/orleans/blob/e4e752cedecc2976811db49802c7a999b1f1c704/src/AdoNet/Orleans.Persistence.AdoNet/Storage/Provider/AdoNetGrainStorage.cs#L73)

```csharp
public class AdoNetGrainStorage : ILifecycleParticipant<ISiloLifecycle>, IGrainStorage
```

A storage provider for writing grain state data to relational storage.

## Remarks

Configuration is provided through [AdoNetGrainStorageOptions](/orleans/docs/api/csharp/microsoft.orleans.persistence.adonet/orleans.configuration.adonetgrainstorageoptions/).

Required configuration: `ConnectionString` - The database connection string.

Optional configuration: `Invariant` - The ADO.NET provider invariant name (defaults to `Microsoft.Data.SqlClient`).

## Constructors

- [AdoNetGrainStorage(IActivatorProvider, ILogger&lt;AdoNetGrainStorage&gt;, IOptions&lt;AdoNetGrainStorageOptions&gt;, IOptions&lt;ClusterOptions&gt;, string)](/orleans/docs/api/csharp/microsoft.orleans.persistence.adonet/orleans.storage.adonetgrainstorage/constructors/constructor-orleans-serialization-serializers-iactivatorprovider-microsoft-exten-27fb3151/)

## Properties

- [CurrentOperationalQueries](/orleans/docs/api/csharp/microsoft.orleans.persistence.adonet/orleans.storage.adonetgrainstorage/properties/currentoperationalqueries-df41db59/)
- [HashPicker](/orleans/docs/api/csharp/microsoft.orleans.persistence.adonet/orleans.storage.adonetgrainstorage/properties/hashpicker-f0f3c902/)
- [Serializer](/orleans/docs/api/csharp/microsoft.orleans.persistence.adonet/orleans.storage.adonetgrainstorage/properties/serializer-a77548e2/)

## Methods

- [ClearStateAsync(string, GrainId, IGrainState&lt;T&gt;)](/orleans/docs/api/csharp/microsoft.orleans.persistence.adonet/orleans.storage.adonetgrainstorage/methods/clearstateasync-1-string-orleans-runtime-grainid-orleans-igrainstate-t-9e872e18/)
- [Participate(ISiloLifecycle)](/orleans/docs/api/csharp/microsoft.orleans.persistence.adonet/orleans.storage.adonetgrainstorage/methods/participate-orleans-runtime-isilolifecycle-e2b6abc8/)
- [ReadStateAsync(string, GrainId, IGrainState&lt;T&gt;)](/orleans/docs/api/csharp/microsoft.orleans.persistence.adonet/orleans.storage.adonetgrainstorage/methods/readstateasync-1-string-orleans-runtime-grainid-orleans-igrainstate-t-14bac435/)
- [WriteStateAsync(string, GrainId, IGrainState&lt;T&gt;)](/orleans/docs/api/csharp/microsoft.orleans.persistence.adonet/orleans.storage.adonetgrainstorage/methods/writestateasync-1-string-orleans-runtime-grainid-orleans-igrainstate-t-6633a67a/)

## Fields

- [BinaryFormatSerializerTag](/orleans/docs/api/csharp/microsoft.orleans.persistence.adonet/orleans.storage.adonetgrainstorage/fields/binaryformatserializertag-88551e3d/)
- [DefaultInitializationQuery](/orleans/docs/api/csharp/microsoft.orleans.persistence.adonet/orleans.storage.adonetgrainstorage/fields/defaultinitializationquery-3196d90a/)
- [JsonFormatSerializerTag](/orleans/docs/api/csharp/microsoft.orleans.persistence.adonet/orleans.storage.adonetgrainstorage/fields/jsonformatserializertag-37061c0c/)
- [XmlFormatSerializerTag](/orleans/docs/api/csharp/microsoft.orleans.persistence.adonet/orleans.storage.adonetgrainstorage/fields/xmlformatserializertag-d7425473/)
