|
Dreamine.Database.Core 1.0.1
Dreamine.Database.Core 데이터베이스 기능과 관련 API를 제공합니다.
|


Public 멤버 함수 | |
| virtual void | EnsureDatabaseExists () |
| virtual async Task | EnsureDatabaseExistsAsync (CancellationToken cancellationToken=default) |
| bool | IsTableExists< T > () |
| Task< bool > | IsTableExistsAsync< T > (CancellationToken cancellationToken=default) |
| bool | IsTableExists (string tableName) |
| Task< bool > | IsTableExistsAsync (string tableName, CancellationToken cancellationToken=default) |
| void | CreateTable< T > () |
| async Task | CreateTableAsync< T > (CancellationToken cancellationToken=default) |
| int | ExecuteNonQuery (string sql, object? parameters=null) |
| async Task< int > | ExecuteNonQueryAsync (string sql, object? parameters=null, CancellationToken cancellationToken=default) |
| T? | ExecuteScalar< T > (string sql, object? parameters=null) |
| async Task< T?> | ExecuteScalarAsync< T > (string sql, object? parameters=null, CancellationToken cancellationToken=default) |
| IEnumerable< T > | Query< T > (string sql, object? parameters=null) |
| async Task< IReadOnlyList< T > > | QueryAsync< T > (string sql, object? parameters=null, CancellationToken cancellationToken=default) |
| bool | Insert< T > (T entity) |
| async Task< bool > | InsertAsync< T > (T entity, CancellationToken cancellationToken=default) |
| bool | Update< T > (T entity) |
| async Task< bool > | UpdateAsync< T > (T entity, CancellationToken cancellationToken=default) |
| bool | Delete< T > (T entity) |
| async Task< bool > | DeleteAsync< T > (T entity, CancellationToken cancellationToken=default) |
Protected 멤버 함수 | |
| DatabaseProviderBase (string connectionString) | |
| IDbConnection | CreateConnection () |
| string | QuoteIdentifier (string identifier) |
| string | GetSqlType (DatabasePropertyMap property) |
| virtual string | BuildCreateTableSql (DatabaseEntityMap map) |
| virtual string | BuildInsertSql (DatabaseEntityMap map) |
| virtual string | BuildUpdateSql (DatabaseEntityMap map) |
| virtual string | BuildDeleteSql (DatabaseEntityMap map) |
| virtual string | BuildPrimaryKeySql (DatabasePropertyMap property) |
속성 | |
| DatabaseProviderKind | Kind [get] |
| string | ConnectionString [get] |
| virtual string | ParameterPrefix [get] |
Private 타입 | |
| enum | SqlKind { Insert , Update , Delete } |
Private 멤버 함수 | |
| string | GetOrBuildSql< T > (SqlKind kind) |
| IDbConnection | CreateOpenedConnection () |
정적 Private 멤버 함수 | |
| static async Task | OpenAsync (IDbConnection connection, CancellationToken cancellationToken) |
| static DatabasePropertyMap | RequireKey (DatabaseEntityMap map) |
정적 Private 속성 | |
| static readonly ConcurrentDictionary<(Type, DatabaseProviderKind, SqlKind), string > | SqlCache = new() |
Dreamine 데이터베이스 공급자의 공통 기본 구현을 제공합니다.
DatabaseProviderBase.cs 파일의 17 번째 라인에서 정의되었습니다.
캐시할 데이터 조작 SQL의 종류를 나타냅니다.
| 열거형 멤버 | |
|---|---|
| Insert | 삽입 SQL입니다. |
| Update | 갱신 SQL입니다. |
| Delete | 삭제 SQL입니다. |
DatabaseProviderBase.cs 파일의 27 번째 라인에서 정의되었습니다.
|
inlineprotected |
지정한 연결 문자열로 DatabaseProviderBase의 새 인스턴스를 초기화합니다.
| connectionString | 공급자가 사용할 연결 문자열입니다. |
| ArgumentNullException | connectionString 이 null인 경우 발생합니다. |
| ArgumentException | connectionString 이 비어 있거나 공백인 경우 발생합니다. |
DatabaseProviderBase.cs 파일의 101 번째 라인에서 정의되었습니다.
다음을 참조함 : ConnectionString.
|
inlineprotectedvirtual |
엔터티 매핑의 CREATE TABLE SQL을 만듭니다.
| map | 테이블을 정의하는 엔터티 매핑입니다. |
DatabaseProviderBase.cs 파일의 1238 번째 라인에서 정의되었습니다.
다음을 참조함 : BuildPrimaryKeySql(), Dreamine.Database.Core.Mapping.DatabaseEntityMap.Properties.
다음에 의해서 참조됨 : CreateTable< T >(), CreateTableAsync< T >().


|
inlineprotectedvirtual |
엔터티 매핑의 DELETE SQL을 만듭니다.
| map | 삭제 매핑입니다. |
| InvalidOperationException | 매핑에 키가 없는 경우 발생합니다. |
DatabaseProviderBase.cs 파일의 1359 번째 라인에서 정의되었습니다.
다음을 참조함 : RequireKey().
다음에 의해서 참조됨 : GetOrBuildSql< T >().


|
inlineprotectedvirtual |
엔터티 매핑의 INSERT SQL을 만듭니다.
| map | 삽입 매핑입니다. |
DatabaseProviderBase.cs 파일의 1278 번째 라인에서 정의되었습니다.
다음을 참조함 : Dreamine.Database.Core.Mapping.DatabaseEntityMap.InsertableProperties, ParameterPrefix, QuoteIdentifier().
다음에 의해서 참조됨 : GetOrBuildSql< T >().


|
inlineprotectedvirtual |
기본 키 열에 덧붙일 공급자별 SQL 조각을 만듭니다.
| property | 기본 키 속성 매핑입니다. |
DatabaseProviderBase.cs 파일의 1389 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : BuildCreateTableSql().

|
inlineprotectedvirtual |
엔터티 매핑의 UPDATE SQL을 만듭니다.
| map | 갱신 매핑입니다. |
| InvalidOperationException | 매핑에 키가 없는 경우 발생합니다. |
DatabaseProviderBase.cs 파일의 1318 번째 라인에서 정의되었습니다.
다음을 참조함 : RequireKey(), Dreamine.Database.Core.Mapping.DatabaseEntityMap.UpdatableProperties.
다음에 의해서 참조됨 : GetOrBuildSql< T >().


|
abstractprotected |
공급자별 닫힌 데이터베이스 연결을 만듭니다.
다음에 의해서 참조됨 : CreateOpenedConnection(), DeleteAsync< T >(), EnsureDatabaseExists(), EnsureDatabaseExistsAsync(), ExecuteNonQueryAsync(), ExecuteScalarAsync< T >(), InsertAsync< T >(), QueryAsync< T >(), UpdateAsync< T >().

|
inlineprivate |
새 공급자 연결을 만들고 동기적으로 엽니다.
DatabaseProviderBase.cs 파일의 1466 번째 라인에서 정의되었습니다.
다음을 참조함 : CreateConnection().
다음에 의해서 참조됨 : Delete< T >(), ExecuteNonQuery(), ExecuteScalar< T >(), Insert< T >(), Query< T >(), Update< T >().


|
inline |
T 에 매핑된 테이블이 없으면 생성합니다.
| T | 테이블을 정의하는 엔터티 형식입니다. |
DatabaseProviderBase.cs 파일의 325 번째 라인에서 정의되었습니다.
다음을 참조함 : BuildCreateTableSql(), Dreamine.Database.Core.Mapping.DatabaseEntityMap.Create(), ExecuteNonQuery(), IsTableExists().

|
inline |
T 에 매핑된 테이블이 없으면 비동기적으로 생성합니다.
| T | 테이블을 정의하는 엔터티 형식입니다. |
| cancellationToken | 생성 작업 취소 토큰입니다. |
DatabaseProviderBase.cs 파일의 369 번째 라인에서 정의되었습니다.
다음을 참조함 : BuildCreateTableSql(), Dreamine.Database.Core.Mapping.DatabaseEntityMap.Create(), ExecuteNonQueryAsync(), IsTableExistsAsync().

|
inline |
키로 식별된 엔터티 행을 삭제합니다.
| T | 엔터티 형식입니다. |
| entity | 삭제할 엔터티입니다. |
| ArgumentNullException | entity 가 null인 경우 발생합니다. |
| InvalidOperationException | 엔터티 매핑에 키가 없는 경우 발생합니다. |
DatabaseProviderBase.cs 파일의 1069 번째 라인에서 정의되었습니다.
다음을 참조함 : CreateOpenedConnection(), GetOrBuildSql< T >().

|
inline |
키로 식별된 엔터티 행을 비동기적으로 삭제합니다.
| T | 엔터티 형식입니다. |
| entity | 삭제할 엔터티입니다. |
| cancellationToken | 삭제 취소 토큰입니다. |
| ArgumentNullException | entity 가 null인 경우 발생합니다. |
| InvalidOperationException | 엔터티 매핑에 키가 없는 경우 발생합니다. |
DatabaseProviderBase.cs 파일의 1133 번째 라인에서 정의되었습니다.
다음을 참조함 : CreateConnection(), GetOrBuildSql< T >(), OpenAsync().

|
inlinevirtual |
대상 데이터베이스를 열어 존재 여부를 동기적으로 확인합니다.
DatabaseProviderBase.cs 파일의 145 번째 라인에서 정의되었습니다.
다음을 참조함 : CreateConnection().

|
inlinevirtual |
대상 데이터베이스를 열어 존재 여부를 비동기적으로 확인합니다.
| cancellationToken | 열기 작업 취소 토큰입니다. |
DatabaseProviderBase.cs 파일의 175 번째 라인에서 정의되었습니다.
다음을 참조함 : CreateConnection(), OpenAsync().

|
inline |
결과 집합을 반환하지 않는 SQL 명령을 동기적으로 실행합니다.
| sql | 실행할 SQL입니다. |
| parameters | 선택적 SQL 매개 변수 객체입니다. |
| ArgumentNullException | sql 이 null인 경우 발생합니다. |
| ArgumentException | sql 이 비어 있거나 공백인 경우 발생합니다. |
DatabaseProviderBase.cs 파일의 429 번째 라인에서 정의되었습니다.
다음을 참조함 : CreateOpenedConnection().
다음에 의해서 참조됨 : CreateTable< T >().


|
inline |
결과 집합을 반환하지 않는 SQL 명령을 비동기적으로 실행합니다.
| sql | 실행할 SQL입니다. |
| parameters | 선택적 SQL 매개 변수 객체입니다. |
| cancellationToken | 실행 취소 토큰입니다. |
| ArgumentNullException | sql 이 null인 경우 발생합니다. |
| ArgumentException | sql 이 비어 있거나 공백인 경우 발생합니다. |
DatabaseProviderBase.cs 파일의 493 번째 라인에서 정의되었습니다.
다음을 참조함 : CreateConnection(), OpenAsync().
다음에 의해서 참조됨 : CreateTableAsync< T >().


|
inline |
SQL 명령을 실행하고 첫 번째 스칼라 값을 반환합니다.
| T | 결과 값 형식입니다. |
| sql | 실행할 SQL입니다. |
| parameters | 선택적 SQL 매개 변수 객체입니다. |
| ArgumentNullException | sql 이 null인 경우 발생합니다. |
| ArgumentException | sql 이 비어 있거나 공백인 경우 발생합니다. |
DatabaseProviderBase.cs 파일의 562 번째 라인에서 정의되었습니다.
다음을 참조함 : CreateOpenedConnection().

|
inline |
SQL 명령을 비동기적으로 실행하고 첫 번째 스칼라 값을 반환합니다.
| T | 결과 값 형식입니다. |
| sql | 실행할 SQL입니다. |
| parameters | 선택적 SQL 매개 변수 객체입니다. |
| cancellationToken | 실행 취소 토큰입니다. |
| ArgumentNullException | sql 이 null인 경우 발생합니다. |
| ArgumentException | sql 이 비어 있거나 공백인 경우 발생합니다. |
DatabaseProviderBase.cs 파일의 634 번째 라인에서 정의되었습니다.
다음을 참조함 : CreateConnection(), OpenAsync().

|
inlineprivate |
데이터 조작 SQL을 캐시에서 가져오거나 생성합니다.
| T | 대상 엔터티 형식입니다. |
| kind | 필요한 SQL 작업 종류입니다. |
| ArgumentOutOfRangeException | 지원하지 않는 kind 값인 경우 발생합니다. |
DatabaseProviderBase.cs 파일의 1434 번째 라인에서 정의되었습니다.
다음을 참조함 : BuildDeleteSql(), BuildInsertSql(), BuildUpdateSql(), Dreamine.Database.Core.Mapping.DatabaseEntityMap.Create(), Delete, Insert, Kind, SqlCache, Update.
다음에 의해서 참조됨 : Delete< T >(), DeleteAsync< T >(), Insert< T >(), InsertAsync< T >(), Update< T >(), UpdateAsync< T >().


|
abstractprotected |
속성 매핑에 대응하는 공급자별 SQL 열 형식을 반환합니다.
| property | 변환할 속성 매핑입니다. |
|
inline |
엔터티를 삽입합니다.
| T | 엔터티 형식입니다. |
| entity | 삽입할 엔터티입니다. |
| ArgumentNullException | entity 가 null인 경우 발생합니다. |
DatabaseProviderBase.cs 파일의 831 번째 라인에서 정의되었습니다.
다음을 참조함 : CreateOpenedConnection(), GetOrBuildSql< T >().

|
inline |
엔터티를 비동기적으로 삽입합니다.
| T | 엔터티 형식입니다. |
| entity | 삽입할 엔터티입니다. |
| cancellationToken | 삽입 취소 토큰입니다. |
| ArgumentNullException | entity 가 null인 경우 발생합니다. |
DatabaseProviderBase.cs 파일의 887 번째 라인에서 정의되었습니다.
다음을 참조함 : CreateConnection(), GetOrBuildSql< T >(), OpenAsync().

|
abstract |
지정한 이름의 테이블이 존재하는지 확인합니다.
| tableName | 확인할 테이블 이름입니다. |
다음에 의해서 참조됨 : CreateTable< T >(), IsTableExists< T >().

|
inline |
T 에 매핑된 테이블이 존재하는지 확인합니다.
| T | 확인할 엔터티 형식입니다. |
DatabaseProviderBase.cs 파일의 205 번째 라인에서 정의되었습니다.
다음을 참조함 : Dreamine.Database.Core.Mapping.DatabaseEntityMap.Create(), IsTableExists(), Dreamine.Database.Core.Mapping.DatabaseEntityMap.TableName.

|
abstract |
지정한 이름의 테이블이 존재하는지 비동기적으로 확인합니다.
| tableName | 확인할 테이블 이름입니다. |
| cancellationToken | 확인 작업 취소 토큰입니다. |
다음에 의해서 참조됨 : CreateTableAsync< T >(), IsTableExistsAsync< T >().

|
inline |
T 에 매핑된 테이블이 존재하는지 비동기적으로 확인합니다.
| T | 확인할 엔터티 형식입니다. |
| cancellationToken | 확인 작업 취소 토큰입니다. |
DatabaseProviderBase.cs 파일의 242 번째 라인에서 정의되었습니다.
다음을 참조함 : Dreamine.Database.Core.Mapping.DatabaseEntityMap.Create(), IsTableExistsAsync(), Dreamine.Database.Core.Mapping.DatabaseEntityMap.TableName.

|
inlinestaticprivate |
가능한 경우 비동기 API로 데이터베이스 연결을 엽니다.
| connection | 열 데이터베이스 연결입니다. |
| cancellationToken | 열기 취소 토큰입니다. |
DatabaseProviderBase.cs 파일의 1505 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : DeleteAsync< T >(), EnsureDatabaseExistsAsync(), ExecuteNonQueryAsync(), ExecuteScalarAsync< T >(), InsertAsync< T >(), QueryAsync< T >(), UpdateAsync< T >().

|
inline |
SQL 조회를 실행하고 행을 T 로 매핑합니다.
| T | 행 매핑 형식입니다. |
| sql | 실행할 SQL 조회문입니다. |
| parameters | 선택적 조회 매개 변수 객체입니다. |
| ArgumentNullException | sql 이 null인 경우 발생합니다. |
| ArgumentException | sql 이 비어 있거나 공백인 경우 발생합니다. |
DatabaseProviderBase.cs 파일의 704 번째 라인에서 정의되었습니다.
다음을 참조함 : CreateOpenedConnection().

|
inline |
SQL 조회를 비동기적으로 실행하고 행을 T 로 매핑합니다.
| T | 행 매핑 형식입니다. |
| sql | 실행할 SQL 조회문입니다. |
| parameters | 선택적 조회 매개 변수 객체입니다. |
| cancellationToken | 조회 취소 토큰입니다. |
| ArgumentNullException | sql 이 null인 경우 발생합니다. |
| ArgumentException | sql 이 비어 있거나 공백인 경우 발생합니다. |
DatabaseProviderBase.cs 파일의 776 번째 라인에서 정의되었습니다.
다음을 참조함 : CreateConnection(), OpenAsync().

|
abstractprotected |
공급자 문법에 맞게 SQL 식별자를 인용합니다.
| identifier | 인용할 식별자입니다. |
다음에 의해서 참조됨 : BuildInsertSql().

|
inlinestaticprivate |
엔터티 매핑에서 필수 키 속성을 가져옵니다.
| map | 검사할 엔터티 매핑입니다. |
| InvalidOperationException | 키 속성이 정의되지 않은 경우 발생합니다. |
DatabaseProviderBase.cs 파일의 1549 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : BuildDeleteSql(), BuildUpdateSql().

|
inline |
키로 식별된 엔터티 행을 갱신합니다.
| T | 엔터티 형식입니다. |
| entity | 갱신할 엔터티입니다. |
| ArgumentNullException | entity 가 null인 경우 발생합니다. |
| InvalidOperationException | 엔터티 매핑에 키가 없는 경우 발생합니다. |
DatabaseProviderBase.cs 파일의 946 번째 라인에서 정의되었습니다.
다음을 참조함 : CreateOpenedConnection(), GetOrBuildSql< T >().

|
inline |
키로 식별된 엔터티 행을 비동기적으로 갱신합니다.
| T | 엔터티 형식입니다. |
| entity | 갱신할 엔터티입니다. |
| cancellationToken | 갱신 취소 토큰입니다. |
| ArgumentNullException | entity 가 null인 경우 발생합니다. |
| InvalidOperationException | 엔터티 매핑에 키가 없는 경우 발생합니다. |
DatabaseProviderBase.cs 파일의 1010 번째 라인에서 정의되었습니다.
다음을 참조함 : CreateConnection(), GetOrBuildSql< T >(), OpenAsync().

|
staticprivate |
Sql Cache 값을 보관합니다.
DatabaseProviderBase.cs 파일의 67 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : GetOrBuildSql< T >().
|
get |
데이터베이스 연결 문자열을 가져옵니다.
DatabaseProviderBase.cs 파일의 125 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : DatabaseProviderBase().
|
getabstract |
구현 공급자의 종류를 가져옵니다.
DatabaseProviderBase.cs 파일의 115 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : GetOrBuildSql< T >().
|
getprotected |
SQL 매개 변수 이름 앞에 붙는 공급자별 접두사를 가져옵니다.
DatabaseProviderBase.cs 파일의 135 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : BuildInsertSql().