# Class DbObject OptimaJet.Workflow.DbPersistence.DbObject Namespace: [OptimaJet.Workflow.DbPersistence](https://api.workflowengine.io/sql-server/OptimaJet.Workflow.DbPersistence/) ```csharp public class DbObject where TEntity : IEntity, new() ``` ## Type Hierarchy - DbObject Current type - [ProcessInstanceTree](https://api.workflowengine.io/sql-server/OptimaJet.Workflow.DbPersistence/ProcessInstanceTree/) - [WorkflowApprovalHistory](https://api.workflowengine.io/sql-server/OptimaJet.Workflow.DbPersistence/WorkflowApprovalHistory/) - [WorkflowForm](https://api.workflowengine.io/sql-server/OptimaJet.Workflow.MSSQL.Models/WorkflowForm/) - [WorkflowGlobalParameter](https://api.workflowengine.io/sql-server/OptimaJet.Workflow.DbPersistence/WorkflowGlobalParameter/) - [WorkflowInbox](https://api.workflowengine.io/sql-server/OptimaJet.Workflow.DbPersistence/WorkflowInbox/) - [WorkflowProcessInstance](https://api.workflowengine.io/sql-server/OptimaJet.Workflow.DbPersistence/WorkflowProcessInstance/) - [WorkflowProcessInstancePersistence](https://api.workflowengine.io/sql-server/OptimaJet.Workflow.DbPersistence/WorkflowProcessInstancePersistence/) - [WorkflowProcessInstanceStatus](https://api.workflowengine.io/sql-server/OptimaJet.Workflow.DbPersistence/WorkflowProcessInstanceStatus/) - [WorkflowProcessScheme](https://api.workflowengine.io/sql-server/OptimaJet.Workflow.DbPersistence/WorkflowProcessScheme/) - [WorkflowProcessTimer](https://api.workflowengine.io/sql-server/OptimaJet.Workflow.DbPersistence/WorkflowProcessTimer/) - [WorkflowProcessTransitionHistory](https://api.workflowengine.io/sql-server/OptimaJet.Workflow.DbPersistence/WorkflowProcessTransitionHistory/) - [WorkflowRuntime](https://api.workflowengine.io/sql-server/OptimaJet.Workflow.MSSQL.Models/WorkflowRuntime/) - [WorkflowScheme](https://api.workflowengine.io/sql-server/OptimaJet.Workflow.DbPersistence/WorkflowScheme/) - [WorkflowSync](https://api.workflowengine.io/sql-server/OptimaJet.Workflow.MSSQL.Models/WorkflowSync/) ## Constructors `public DbObject(string schemaName, string dbTableName, int commandTimeout)` ### Parameters | Name | Type | Description | | --- | --- | --- | | `schemaName` | `String` | | | `dbTableName` | `String` | | | `commandTimeout` | `Int32` | | ## Properties `public int CommandTimeout { get; }` `public string SchemaName { get; }` `public string DbTableName { get; }` `public string ObjectName { get; }` ## Methods `public Task InsertAsync(SqlConnection connection, TEntity entity, SqlTransaction transaction = null)` ### Parameters | Name | Type | Description | | --- | --- | --- | | `connection` | `SqlConnection` | | | `entity` | `{TEntity}` | | | `transaction` | `SqlTransaction` | | ### Returns | Type | Description | | --- | --- | | `Task` | | `public virtual Task UpsertAsync(SqlConnection connection, TEntity entity, SqlTransaction transaction = null)` ### Parameters | Name | Type | Description | | --- | --- | --- | | `connection` | `SqlConnection` | | | `entity` | `{TEntity}` | | | `transaction` | `SqlTransaction` | | ### Returns | Type | Description | | --- | --- | | `Task` | | `public Task UpdateAsync(SqlConnection connection, TEntity entity, SqlTransaction transaction = null)` ### Parameters | Name | Type | Description | | --- | --- | --- | | `connection` | `SqlConnection` | | | `entity` | `{TEntity}` | | | `transaction` | `SqlTransaction` | | ### Returns | Type | Description | | --- | --- | | `Task` | | `public Task SelectAllAsync(SqlConnection connection)` ### Parameters | Name | Type | Description | | --- | --- | --- | | `connection` | `SqlConnection` | | ### Returns | Type | Description | | --- | --- | | `Task` | | `public Task SelectAllWithPagingAsync(SqlConnection connection, List<(string parameterName, SortDirection sortDirection)> orderParameters, Paging paging)` ### Parameters | Name | Type | Description | | --- | --- | --- | | `connection` | `SqlConnection` | | | `orderParameters` | `List` | | | `paging` | `Paging` | | ### Returns | Type | Description | | --- | --- | | `Task` | | `public Task SelectByAsync(SqlConnection connection, Expression> selectorLambda, TSelect value)` ### Parameters | Name | Type | Description | | --- | --- | --- | | `connection` | `SqlConnection` | | | `selectorLambda` | `Expression` | | | `value` | `{TSelect}` | | ### Returns | Type | Description | | --- | --- | | `Task` | | `public Task DeleteByAsync(SqlConnection connection, Expression> selectorLambda, TSelect value, SqlTransaction transaction = null)` ### Parameters | Name | Type | Description | | --- | --- | --- | | `connection` | `SqlConnection` | | | `selectorLambda` | `Expression` | | | `value` | `{TSelect}` | | | `transaction` | `SqlTransaction` | | ### Returns | Type | Description | | --- | --- | | `Task` | | `public Task SelectByWithPagingAsync(SqlConnection connection, Expression> selectorLambda, TSelect value, Expression> sortLambda, SortDirection sortDirection, Paging paging)` ### Parameters | Name | Type | Description | | --- | --- | --- | | `connection` | `SqlConnection` | | | `selectorLambda` | `Expression` | | | `value` | `{TSelect}` | | | `sortLambda` | `Expression` | | | `sortDirection` | `SortDirection` | | | `paging` | `Paging` | | ### Returns | Type | Description | | --- | --- | | `Task` | | `public Task SelectByKeyAsync(SqlConnection connection, object id)` ### Parameters | Name | Type | Description | | --- | --- | --- | | `connection` | `SqlConnection` | | | `id` | `Object` | | ### Returns | Type | Description | | --- | --- | | `Task` | | `public Task GetCountAsync(SqlConnection connection)` ### Parameters | Name | Type | Description | | --- | --- | --- | | `connection` | `SqlConnection` | | ### Returns | Type | Description | | --- | --- | | `Task` | | `public Task GetCountByAsync(SqlConnection connection, Expression> selectorLambda, TSelect value, SqlTransaction transaction = null)` ### Parameters | Name | Type | Description | | --- | --- | --- | | `connection` | `SqlConnection` | | | `selectorLambda` | `Expression` | | | `value` | `{TSelect}` | | | `transaction` | `SqlTransaction` | | ### Returns | Type | Description | | --- | --- | | `Task` | | `public Task DeleteAsync(SqlConnection connection, object id, SqlTransaction transaction = null)` ### Parameters | Name | Type | Description | | --- | --- | --- | | `connection` | `SqlConnection` | | | `id` | `Object` | | | `transaction` | `SqlTransaction` | | ### Returns | Type | Description | | --- | --- | | `Task` | | `public Task SelectAsync(SqlConnection connection, string commandText, params SqlParameter[] parameters)` ### Parameters | Name | Type | Description | | --- | --- | --- | | `connection` | `SqlConnection` | | | `commandText` | `String` | | | `parameters` | `SqlParameter[]` | | ### Returns | Type | Description | | --- | --- | | `Task` | | `public Task SelectAsync(SqlConnection connection, string commandText, SqlTransaction transaction, params SqlParameter[] parameters)` ### Parameters | Name | Type | Description | | --- | --- | --- | | `connection` | `SqlConnection` | | | `commandText` | `String` | | | `transaction` | `SqlTransaction` | | | `parameters` | `SqlParameter[]` | | ### Returns | Type | Description | | --- | --- | | `Task` | | `public Task>> SelectAsDictionaryAsync(SqlConnection connection, string commandText, params SqlParameter[] parameters)` ### Parameters | Name | Type | Description | | --- | --- | --- | | `connection` | `SqlConnection` | | | `commandText` | `String` | | | `parameters` | `SqlParameter[]` | | ### Returns | Type | Description | | --- | --- | | `Task` | | `public Task ExecuteCommandNonQueryAsync(SqlConnection connection, string commandText, params SqlParameter[] parameters)` ### Parameters | Name | Type | Description | | --- | --- | --- | | `connection` | `SqlConnection` | | | `commandText` | `String` | | | `parameters` | `SqlParameter[]` | | ### Returns | Type | Description | | --- | --- | | `Task` | | `public Task ExecuteCommandNonQueryAsync(SqlConnection connection, string commandText, SqlTransaction transaction = null, params SqlParameter[] parameters)` ### Parameters | Name | Type | Description | | --- | --- | --- | | `connection` | `SqlConnection` | | | `commandText` | `String` | | | `transaction` | `SqlTransaction` | | | `parameters` | `SqlParameter[]` | | ### Returns | Type | Description | | --- | --- | | `Task` | | `public Task ExecuteCommandScalarAsync(SqlConnection connection, string commandText, params SqlParameter[] parameters)` ### Parameters | Name | Type | Description | | --- | --- | --- | | `connection` | `SqlConnection` | | | `commandText` | `String` | | | `parameters` | `SqlParameter[]` | | ### Returns | Type | Description | | --- | --- | | `Task` | | `public Task ExecuteCommandScalarAsync(SqlConnection connection, string commandText, SqlTransaction transaction = null, params SqlParameter[] parameters)` ### Parameters | Name | Type | Description | | --- | --- | --- | | `connection` | `SqlConnection` | | | `commandText` | `String` | | | `transaction` | `SqlTransaction` | | | `parameters` | `SqlParameter[]` | | ### Returns | Type | Description | | --- | --- | | `Task` | | `public Task InsertAllAsync(SqlConnection connection, TEntity[] entities, SqlTransaction transaction = null)` ### Parameters | Name | Type | Description | | --- | --- | --- | | `connection` | `SqlConnection` | | | `entities` | `{TEntity}[]` | | | `transaction` | `SqlTransaction` | | ### Returns | Type | Description | | --- | --- | | `Task` | | `public static object ConvertToDbCompatibilityType(object obj)` ### Parameters | Name | Type | Description | | --- | --- | --- | | `obj` | `Object` | | ### Returns | Type | Description | | --- | --- | | `Object` | | `public virtual SqlParameter CreateParameter(TEntity entity, ColumnInfo column, string namePrefix = "")` ### Parameters | Name | Type | Description | | --- | --- | --- | | `entity` | `{TEntity}` | | | `column` | `ColumnInfo` | | | `namePrefix` | `String` | | ### Returns | Type | Description | | --- | --- | | `SqlParameter` | | `public string GetKeyOrFirstColumn()` ### Returns | Type | Description | | --- | --- | | `String` | | ## Fields `public static List DBColumnsStatic` `public List DBColumns` [Previous DBColumnsExtensions](https://api.workflowengine.io/sql-server/OptimaJet.Workflow.DbPersistence/DBColumnsExtensions/) [Next Extensions](https://api.workflowengine.io/sql-server/OptimaJet.Workflow.DbPersistence/Extensions/)