Table of Contents

Class Repository

Namespace
IceCoffee.Db4Net
Assembly
IceCoffee.Db4Net.dll

Represents a repository for executing SQL commands and building SQL queries.

public class Repository
Inheritance
Repository
Inherited Members

Constructors

Repository(IDatabaseRegistry, string)

Initializes a new instance of the Repository class with an explicit runtime and database name.

public Repository(IDatabaseRegistry registry, string databaseName)

Parameters

registry IDatabaseRegistry

The registry used to resolve database resources.

databaseName string

The name of the database.

Repository(string)

Initializes a new instance of the Repository class with the specified database name.

public Repository(string databaseName)

Parameters

databaseName string

The name of the database.

Properties

DatabaseName

Gets the database name associated with this repository.

public virtual string DatabaseName { get; }

Property Value

string

Registry

Gets the runtime associated with this repository.

protected IDatabaseRegistry Registry { get; }

Property Value

IDatabaseRegistry

Methods

CreateDbConnection()

Creates a new database connection using the named context or the default context.

public DbConnection CreateDbConnection()

Returns

DbConnection

CreateSqlAdapter()

Creates a SQL adapter for the current database.

public ISqlAdapter CreateSqlAdapter()

Returns

ISqlAdapter

An instance of IceCoffee.Db4Net.Core.SqlAdapters.ISqlAdapter configured for the current database.

DeleteMany<TEntity>(IEnumerable<TEntity>)

Creates a builder to delete multiple entities.

public SqlDeleteEntityBuilder<TEntity> DeleteMany<TEntity>(IEnumerable<TEntity> entities)

Parameters

entities IEnumerable<TEntity>

A collection of entities to delete.

Returns

SqlDeleteEntityBuilder<TEntity>

A IceCoffee.Db4Net.Core.SqlBuilders.SqlDeleteEntityBuilder<TEntity> instance.

Type Parameters

TEntity

The entity type.

DeleteMany<TEntity>(IEnumerable)

Creates a builder to delete multiple records by their identifiers for a specific entity type.

public SqlDeleteBuilder<TEntity> DeleteMany<TEntity>(IEnumerable ids)

Parameters

ids IEnumerable

A collection of record identifiers.

Returns

SqlDeleteBuilder<TEntity>

A IceCoffee.Db4Net.Core.SqlBuilders.SqlDeleteBuilder<TEntity> instance.

Type Parameters

TEntity

The entity type.

Delete<TEntity>()

Creates a builder to delete records for a specific entity type.

public SqlDeleteBuilder<TEntity> Delete<TEntity>()

Returns

SqlDeleteBuilder<TEntity>

A IceCoffee.Db4Net.Core.SqlBuilders.SqlDeleteBuilder<TEntity> instance.

Type Parameters

TEntity

The entity type.

Delete<TEntity>(object)

Creates a builder to delete a record by its identifier for a specific entity type.

public SqlDeleteBuilder<TEntity> Delete<TEntity>(object id)

Parameters

id object

The record identifier.

Returns

SqlDeleteBuilder<TEntity>

A IceCoffee.Db4Net.Core.SqlBuilders.SqlDeleteBuilder<TEntity> instance.

Type Parameters

TEntity

The entity type.

Delete<TEntity>(TEntity)

Creates a builder to delete a single entity.

public SqlDeleteEntityBuilder<TEntity> Delete<TEntity>(TEntity entity)

Parameters

entity TEntity

The entity to delete.

Returns

SqlDeleteEntityBuilder<TEntity>

A IceCoffee.Db4Net.Core.SqlBuilders.SqlDeleteEntityBuilder<TEntity> instance.

Type Parameters

TEntity

The entity type.

InsertAndGetId<TEntity>(TEntity)

Creates a builder to insert an entity and retrieve its generated identifier.

public SqlInsertAndGetIdBuilder<TEntity> InsertAndGetId<TEntity>(TEntity entity)

Parameters

entity TEntity

The entity to insert.

Returns

SqlInsertAndGetIdBuilder<TEntity>

A IceCoffee.Db4Net.Core.SqlBuilders.SqlInsertAndGetIdBuilder<TEntity> instance.

Type Parameters

TEntity

The entity type.

InsertMany<TEntity>(IEnumerable<TEntity>)

Creates a builder to insert multiple entity records.

public SqlInsertEntityBuilder<TEntity> InsertMany<TEntity>(IEnumerable<TEntity> entities)

Parameters

entities IEnumerable<TEntity>

The entities to insert.

Returns

SqlInsertEntityBuilder<TEntity>

A IceCoffee.Db4Net.Core.SqlBuilders.SqlInsertEntityBuilder<TEntity> instance.

Type Parameters

TEntity

The entity type.

InsertOrIgnoreMany<TEntity>(IEnumerable<TEntity>)

Creates a builder to insert multiple entities, ignoring conflicts for existing records.

public SqlInsertOrIgnoreBuilder<TEntity> InsertOrIgnoreMany<TEntity>(IEnumerable<TEntity> entities)

Parameters

entities IEnumerable<TEntity>

The entities to insert.

Returns

SqlInsertOrIgnoreBuilder<TEntity>

A IceCoffee.Db4Net.Core.SqlBuilders.SqlInsertOrIgnoreBuilder<TEntity> instance.

Type Parameters

TEntity

The entity type.

InsertOrIgnore<TEntity>(TEntity)

Creates a builder to insert an entity if it does not exist, ignoring conflicts otherwise.

public SqlInsertOrIgnoreBuilder<TEntity> InsertOrIgnore<TEntity>(TEntity entity)

Parameters

entity TEntity

The entity to insert.

Returns

SqlInsertOrIgnoreBuilder<TEntity>

A IceCoffee.Db4Net.Core.SqlBuilders.SqlInsertOrIgnoreBuilder<TEntity> instance.

Type Parameters

TEntity

The entity type.

InsertOrReplaceMany<TEntity>(IEnumerable<TEntity>)

Creates a builder to insert or replace multiple entities.

public SqlInsertOrReplaceBuilder<TEntity> InsertOrReplaceMany<TEntity>(IEnumerable<TEntity> entities)

Parameters

entities IEnumerable<TEntity>

The entities to insert or replace.

Returns

SqlInsertOrReplaceBuilder<TEntity>

A IceCoffee.Db4Net.Core.SqlBuilders.SqlInsertOrReplaceBuilder<TEntity> instance.

Type Parameters

TEntity

The entity type.

InsertOrReplace<TEntity>(TEntity)

Creates a builder to insert or replace an existing entity.

public SqlInsertOrReplaceBuilder<TEntity> InsertOrReplace<TEntity>(TEntity entity)

Parameters

entity TEntity

The entity to insert or replace.

Returns

SqlInsertOrReplaceBuilder<TEntity>

A IceCoffee.Db4Net.Core.SqlBuilders.SqlInsertOrReplaceBuilder<TEntity> instance.

Type Parameters

TEntity

The entity type.

Insert<TEntity>()

Creates a builder to insert new records for a specific entity type.

public SqlInsertBuilder<TEntity> Insert<TEntity>()

Returns

SqlInsertBuilder<TEntity>

A IceCoffee.Db4Net.Core.SqlBuilders.SqlInsertBuilder<TEntity> instance.

Type Parameters

TEntity

The entity type.

Insert<TEntity>(TEntity)

Creates a builder to insert a single entity record.

public SqlInsertEntityBuilder<TEntity> Insert<TEntity>(TEntity entity)

Parameters

entity TEntity

The entity to insert.

Returns

SqlInsertEntityBuilder<TEntity>

A IceCoffee.Db4Net.Core.SqlBuilders.SqlInsertEntityBuilder<TEntity> instance.

Type Parameters

TEntity

The entity type.

Query()

Creates a new IceCoffee.Db4Net.Core.SqlBuilders.SqlQueryBuilder instance.

public SqlQueryBuilder Query()

Returns

SqlQueryBuilder

A IceCoffee.Db4Net.Core.SqlBuilders.SqlQueryBuilder object.

QueryCount<TEntity>()

Creates an SQL query builder for counting records in the default table of an entity type.

public SqlQueryCountBuilder<TEntity> QueryCount<TEntity>()

Returns

SqlQueryCountBuilder<TEntity>

A IceCoffee.Db4Net.Core.SqlBuilders.SqlQueryBuilder preconfigured to count.

Type Parameters

TEntity

The entity type.

QueryExists()

Creates a new IceCoffee.Db4Net.Core.SqlBuilders.SqlQueryExistsBuilder to check for existence of records.

public SqlQueryExistsBuilder QueryExists()

Returns

SqlQueryExistsBuilder

A IceCoffee.Db4Net.Core.SqlBuilders.SqlQueryExistsBuilder object.

QueryExists<TEntity>()

Creates a new IceCoffee.Db4Net.Core.SqlBuilders.SqlQueryExistsBuilder<TEntity> to check for existence of records for a specific entity type.

public SqlQueryExistsBuilder<TEntity> QueryExists<TEntity>()

Returns

SqlQueryExistsBuilder<TEntity>

A IceCoffee.Db4Net.Core.SqlBuilders.SqlQueryExistsBuilder<TEntity> object.

Type Parameters

TEntity

The entity type.

QueryExists<TEntity>(object)

Creates a new IceCoffee.Db4Net.Core.SqlBuilders.SqlQueryExistsBuilder<TEntity> to check for existence of a record by its id.

public SqlQueryExistsBuilder<TEntity> QueryExists<TEntity>(object id)

Parameters

id object

The record identifier.

Returns

SqlQueryExistsBuilder<TEntity>

A IceCoffee.Db4Net.Core.SqlBuilders.SqlQueryExistsBuilder<TEntity> object.

Type Parameters

TEntity

The entity type.

QueryPaged()

Creates a new IceCoffee.Db4Net.Core.SqlBuilders.SqlQueryPagedBuilder instance for paginated queries.

public SqlQueryPagedBuilder QueryPaged()

Returns

SqlQueryPagedBuilder

A IceCoffee.Db4Net.Core.SqlBuilders.SqlQueryPagedBuilder object.

QueryPaged(int, int)

Creates a new IceCoffee.Db4Net.Core.SqlBuilders.SqlQueryPagedBuilder with specified page number and size.

public SqlQueryPagedBuilder QueryPaged(int pageNumber, int pageSize)

Parameters

pageNumber int

The page number.

pageSize int

The number of items in each page.

Returns

SqlQueryPagedBuilder

A IceCoffee.Db4Net.Core.SqlBuilders.SqlQueryPagedBuilder object.

QueryPaged<TEntity>()

Creates a paginated query builder for a specific entity type.

public SqlQueryPagedBuilder<TEntity> QueryPaged<TEntity>()

Returns

SqlQueryPagedBuilder<TEntity>

A IceCoffee.Db4Net.Core.SqlBuilders.SqlQueryPagedBuilder<TEntity> object.

Type Parameters

TEntity

The entity type.

QueryPaged<TEntity>(int, int)

Creates a paginated query builder for a specific entity type with explicit page number and size.

public SqlQueryPagedBuilder<TEntity> QueryPaged<TEntity>(int pageNumber, int pageSize)

Parameters

pageNumber int

The page number.

pageSize int

The number of items per page.

Returns

SqlQueryPagedBuilder<TEntity>

A IceCoffee.Db4Net.Core.SqlBuilders.SqlQueryPagedBuilder<TEntity> object.

Type Parameters

TEntity

The entity type.

QueryStoredProcedure(string, DynamicParameters)

Creates a stored procedure builder using Dapper.DynamicParameters.

public SqlQueryStoredProcedureBuilder QueryStoredProcedure(string procName, DynamicParameters dynamicParameters)

Parameters

procName string

The name of the stored procedure.

dynamicParameters DynamicParameters

Dynamic parameters for the procedure.

Returns

SqlQueryStoredProcedureBuilder

An instance of IceCoffee.Db4Net.Core.SqlBuilders.SqlQueryStoredProcedureBuilder.

QueryStoredProcedure(string, object?)

Creates a stored procedure builder with optional parameters.

public SqlQueryStoredProcedureBuilder QueryStoredProcedure(string procName, object? param = null)

Parameters

procName string

The name of the stored procedure.

param object

Optional parameters for the procedure.

Returns

SqlQueryStoredProcedureBuilder

An instance of IceCoffee.Db4Net.Core.SqlBuilders.SqlQueryStoredProcedureBuilder.

QueryStoredProcedure<TEntity>(string, DynamicParameters)

Creates a stored procedure builder using Dapper.DynamicParameters for a specific entity type.

public SqlQueryStoredProcedureBuilder<TEntity> QueryStoredProcedure<TEntity>(string procName, DynamicParameters dynamicParameters)

Parameters

procName string

The name of the stored procedure.

dynamicParameters DynamicParameters

Dynamic parameters for the procedure.

Returns

SqlQueryStoredProcedureBuilder<TEntity>

An instance of IceCoffee.Db4Net.Core.SqlBuilders.SqlQueryStoredProcedureBuilder<TEntity>.

Type Parameters

TEntity

The entity type.

QueryStoredProcedure<TEntity>(string, object?)

Creates a stored procedure builder with optional parameters for a specific entity type.

public SqlQueryStoredProcedureBuilder<TEntity> QueryStoredProcedure<TEntity>(string procName, object? param = null)

Parameters

procName string

The name of the stored procedure.

param object

Optional parameters for the procedure.

Returns

SqlQueryStoredProcedureBuilder<TEntity>

An instance of IceCoffee.Db4Net.Core.SqlBuilders.SqlQueryStoredProcedureBuilder<TEntity>.

Type Parameters

TEntity

The entity type.

Query<TEntity>()

Creates a new IceCoffee.Db4Net.Core.SqlBuilders.SqlQueryBuilder<TEntity> for the specified entity type.

public SqlQueryBuilder<TEntity> Query<TEntity>()

Returns

SqlQueryBuilder<TEntity>

A IceCoffee.Db4Net.Core.SqlBuilders.SqlQueryBuilder<TEntity> object.

Type Parameters

TEntity

The entity type.

Query<TEntity>(object)

Creates a new IceCoffee.Db4Net.Core.SqlBuilders.SqlQueryBuilder<TEntity> querying by a specific record id.

public SqlQueryBuilder<TEntity> Query<TEntity>(object id)

Parameters

id object

The record identifier.

Returns

SqlQueryBuilder<TEntity>

A IceCoffee.Db4Net.Core.SqlBuilders.SqlQueryBuilder<TEntity> object.

Type Parameters

TEntity

The entity type.

UpdateMany<TEntity>(IEnumerable<TEntity>)

Creates a builder to update multiple entities.

public SqlUpdateEntityBuilder<TEntity> UpdateMany<TEntity>(IEnumerable<TEntity> entities)

Parameters

entities IEnumerable<TEntity>

The entities to update.

Returns

SqlUpdateEntityBuilder<TEntity>

A IceCoffee.Db4Net.Core.SqlBuilders.SqlUpdateEntityBuilder<TEntity> instance.

Type Parameters

TEntity

The entity type.

Update<TEntity>()

Creates a builder to update records for a specific entity type.

public SqlUpdateBuilder<TEntity> Update<TEntity>()

Returns

SqlUpdateBuilder<TEntity>

A IceCoffee.Db4Net.Core.SqlBuilders.SqlUpdateBuilder<TEntity> instance.

Type Parameters

TEntity

The entity type.

Update<TEntity>(TEntity)

Creates a builder to update a single entity.

public SqlUpdateEntityBuilder<TEntity> Update<TEntity>(TEntity entity)

Parameters

entity TEntity

The entity to update.

Returns

SqlUpdateEntityBuilder<TEntity>

A IceCoffee.Db4Net.Core.SqlBuilders.SqlUpdateEntityBuilder<TEntity> instance.

Type Parameters

TEntity

The entity type.