# Interface IProviderFactory OptimaJet.Workflow.Api.IProviderFactory Interface for provider abstract factory used to create data provider and workflow provider implementations. Namespace: [OptimaJet.Workflow.Api](https://api.workflowengine.io/web-api/OptimaJet.Workflow.Api/) ```csharp public interface IProviderFactory ``` ## Properties `string PersistenceProviderId { get; }` The identifier of the database management system, for which this factory creates providers. Default identifiers are stored in PersistenceProviderId. ## Methods `IDataProvider CreateDataProvider(string connectionString, DataProviderCreationOptions options)` Creates a data provider for the specified connection string and options. ### Parameters | Name | Type | Description | | --- | --- | --- | | `connectionString` | `String` | The connection string to the database. | | `options` | `DataProviderCreationOptions` | The options for configuring the data provider. | ### Returns | Type | Description | | --- | --- | | `IDataProvider` | An instance of [IDataProvider](https://api.workflowengine.io/web-api/OptimaJet.Workflow.Api/IDataProvider/). | `IWorkflowProvider CreateWorkflowProvider(PersistenceProviderOptions options)` Creates a workflow provider with the specified options. ### Parameters | Name | Type | Description | | --- | --- | --- | | `options` | `PersistenceProviderOptions` | The options for configuring the workflow provider. | ### Returns | Type | Description | | --- | --- | | `IWorkflowProvider` | An instance of IWorkflowProvider. | [Previous IDataProvider](https://api.workflowengine.io/web-api/OptimaJet.Workflow.Api/IDataProvider/) [Next IProviderFactoryRegistry](https://api.workflowengine.io/web-api/OptimaJet.Workflow.Api/IProviderFactoryRegistry/)