Dreamine.Database.Core 1.0.1
Dreamine.Database.Core 데이터베이스 기능과 관련 API를 제공합니다.
로딩중...
검색중...
일치하는것 없음
Dreamine.Database.Core.Providers.DatabaseProviderBase 클래스 참조abstract

더 자세히 ...

Dreamine.Database.Core.Providers.DatabaseProviderBase에 대한 상속 다이어그램 :
Dreamine.Database.Core.Providers.DatabaseProviderBase에 대한 협력 다이어그램:

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 번째 라인에서 정의되었습니다.

멤버 열거형 문서화

◆ SqlKind

캐시할 데이터 조작 SQL의 종류를 나타냅니다.

열거형 멤버
Insert 

삽입 SQL입니다.

Update 

갱신 SQL입니다.

Delete 

삭제 SQL입니다.

DatabaseProviderBase.cs 파일의 27 번째 라인에서 정의되었습니다.

28 {
37 Insert,
46 Update,
55 Delete
56 }

생성자 & 소멸자 문서화

◆ DatabaseProviderBase()

Dreamine.Database.Core.Providers.DatabaseProviderBase.DatabaseProviderBase ( string connectionString)
inlineprotected

지정한 연결 문자열로 DatabaseProviderBase의 새 인스턴스를 초기화합니다.

매개변수
connectionString공급자가 사용할 연결 문자열입니다.
예외
ArgumentNullExceptionconnectionStringnull인 경우 발생합니다.
ArgumentExceptionconnectionString 이 비어 있거나 공백인 경우 발생합니다.

DatabaseProviderBase.cs 파일의 101 번째 라인에서 정의되었습니다.

102 {
103 ArgumentException.ThrowIfNullOrWhiteSpace(connectionString);
104 ConnectionString = connectionString;
105 }

다음을 참조함 : ConnectionString.

멤버 함수 문서화

◆ BuildCreateTableSql()

virtual string Dreamine.Database.Core.Providers.DatabaseProviderBase.BuildCreateTableSql ( DatabaseEntityMap map)
inlineprotectedvirtual

엔터티 매핑의 CREATE TABLE SQL을 만듭니다.

매개변수
map테이블을 정의하는 엔터티 매핑입니다.
반환값
CREATE TABLE SQL입니다.

DatabaseProviderBase.cs 파일의 1238 번째 라인에서 정의되었습니다.

1239 {
1240 var columns = map.Properties.Select(property =>
1241 {
1242 var sql = $"{QuoteIdentifier(property.ColumnName)} {GetSqlType(property)}";
1243 if (property.IsKey)
1244 {
1245 sql += BuildPrimaryKeySql(property);
1246 }
1247
1248 return sql;
1249 });
1250
1251 return $"CREATE TABLE IF NOT EXISTS {QuoteIdentifier(map.TableName)} ({string.Join(", ", columns)})";
1252 }
IReadOnlyList< DatabasePropertyMap > Properties

다음을 참조함 : BuildPrimaryKeySql(), Dreamine.Database.Core.Mapping.DatabaseEntityMap.Properties.

다음에 의해서 참조됨 : CreateTable< T >(), CreateTableAsync< T >().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ BuildDeleteSql()

virtual string Dreamine.Database.Core.Providers.DatabaseProviderBase.BuildDeleteSql ( DatabaseEntityMap map)
inlineprotectedvirtual

엔터티 매핑의 DELETE SQL을 만듭니다.

매개변수
map삭제 매핑입니다.
반환값
DELETE SQL입니다.
예외
InvalidOperationException매핑에 키가 없는 경우 발생합니다.

DatabaseProviderBase.cs 파일의 1359 번째 라인에서 정의되었습니다.

1360 {
1361 var key = RequireKey(map);
1362 return $"DELETE FROM {QuoteIdentifier(map.TableName)} WHERE {QuoteIdentifier(key.ColumnName)} = {ParameterPrefix}{key.Property.Name}";
1363 }

다음을 참조함 : RequireKey().

다음에 의해서 참조됨 : GetOrBuildSql< T >().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ BuildInsertSql()

virtual string Dreamine.Database.Core.Providers.DatabaseProviderBase.BuildInsertSql ( DatabaseEntityMap map)
inlineprotectedvirtual

엔터티 매핑의 INSERT SQL을 만듭니다.

매개변수
map삽입 매핑입니다.
반환값
INSERT SQL입니다.

DatabaseProviderBase.cs 파일의 1278 번째 라인에서 정의되었습니다.

1279 {
1280 var properties = map.InsertableProperties;
1281 var columns = string.Join(", ", properties.Select(x => QuoteIdentifier(x.ColumnName)));
1282 var values = string.Join(", ", properties.Select(x => ParameterPrefix + x.Property.Name));
1283 return $"INSERT INTO {QuoteIdentifier(map.TableName)} ({columns}) VALUES ({values})";
1284 }
IReadOnlyList< DatabasePropertyMap > InsertableProperties

다음을 참조함 : Dreamine.Database.Core.Mapping.DatabaseEntityMap.InsertableProperties, ParameterPrefix, QuoteIdentifier().

다음에 의해서 참조됨 : GetOrBuildSql< T >().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ BuildPrimaryKeySql()

virtual string Dreamine.Database.Core.Providers.DatabaseProviderBase.BuildPrimaryKeySql ( DatabasePropertyMap property)
inlineprotectedvirtual

기본 키 열에 덧붙일 공급자별 SQL 조각을 만듭니다.

매개변수
property기본 키 속성 매핑입니다.
반환값
기본 키 SQL 조각입니다.

DatabaseProviderBase.cs 파일의 1389 번째 라인에서 정의되었습니다.

1390 {
1391 return " PRIMARY KEY";
1392 }

다음에 의해서 참조됨 : BuildCreateTableSql().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ BuildUpdateSql()

virtual string Dreamine.Database.Core.Providers.DatabaseProviderBase.BuildUpdateSql ( DatabaseEntityMap map)
inlineprotectedvirtual

엔터티 매핑의 UPDATE SQL을 만듭니다.

매개변수
map갱신 매핑입니다.
반환값
UPDATE SQL입니다.
예외
InvalidOperationException매핑에 키가 없는 경우 발생합니다.

DatabaseProviderBase.cs 파일의 1318 번째 라인에서 정의되었습니다.

1319 {
1320 var key = RequireKey(map);
1321 var assignments = string.Join(
1322 ", ",
1323 map.UpdatableProperties.Select(x => $"{QuoteIdentifier(x.ColumnName)} = {ParameterPrefix}{x.Property.Name}"));
1324 return $"UPDATE {QuoteIdentifier(map.TableName)} SET {assignments} WHERE {QuoteIdentifier(key.ColumnName)} = {ParameterPrefix}{key.Property.Name}";
1325 }
IReadOnlyList< DatabasePropertyMap > UpdatableProperties

다음을 참조함 : RequireKey(), Dreamine.Database.Core.Mapping.DatabaseEntityMap.UpdatableProperties.

다음에 의해서 참조됨 : GetOrBuildSql< T >().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ CreateConnection()

IDbConnection Dreamine.Database.Core.Providers.DatabaseProviderBase.CreateConnection ( )
abstractprotected

공급자별 닫힌 데이터베이스 연결을 만듭니다.

반환값
새 데이터베이스 연결입니다.

다음에 의해서 참조됨 : CreateOpenedConnection(), DeleteAsync< T >(), EnsureDatabaseExists(), EnsureDatabaseExistsAsync(), ExecuteNonQueryAsync(), ExecuteScalarAsync< T >(), InsertAsync< T >(), QueryAsync< T >(), UpdateAsync< T >().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ CreateOpenedConnection()

IDbConnection Dreamine.Database.Core.Providers.DatabaseProviderBase.CreateOpenedConnection ( )
inlineprivate

새 공급자 연결을 만들고 동기적으로 엽니다.

반환값
열린 데이터베이스 연결입니다.

DatabaseProviderBase.cs 파일의 1466 번째 라인에서 정의되었습니다.

1467 {
1468 var connection = CreateConnection();
1469 connection.Open();
1470 return connection;
1471 }

다음을 참조함 : CreateConnection().

다음에 의해서 참조됨 : Delete< T >(), ExecuteNonQuery(), ExecuteScalar< T >(), Insert< T >(), Query< T >(), Update< T >().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ CreateTable< T >()

void Dreamine.Database.Core.Providers.DatabaseProviderBase.CreateTable< T > ( )
inline

T 에 매핑된 테이블이 없으면 생성합니다.

템플릿 파라메터
T테이블을 정의하는 엔터티 형식입니다.

DatabaseProviderBase.cs 파일의 325 번째 라인에서 정의되었습니다.

326 {
327 var map = DatabaseEntityMap.Create<T>();
328 if (IsTableExists(map.TableName))
329 {
330 return;
331 }
332
333 var sql = BuildCreateTableSql(map);
334 ExecuteNonQuery(sql);
335 }

다음을 참조함 : BuildCreateTableSql(), Dreamine.Database.Core.Mapping.DatabaseEntityMap.Create(), ExecuteNonQuery(), IsTableExists().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ CreateTableAsync< T >()

async Task Dreamine.Database.Core.Providers.DatabaseProviderBase.CreateTableAsync< T > ( CancellationToken cancellationToken = default)
inline

T 에 매핑된 테이블이 없으면 비동기적으로 생성합니다.

템플릿 파라메터
T테이블을 정의하는 엔터티 형식입니다.
매개변수
cancellationToken생성 작업 취소 토큰입니다.
반환값
테이블 확인 및 생성 작업입니다.

DatabaseProviderBase.cs 파일의 369 번째 라인에서 정의되었습니다.

370 {
371 var map = DatabaseEntityMap.Create<T>();
372 if (await IsTableExistsAsync(map.TableName, cancellationToken).ConfigureAwait(false))
373 {
374 return;
375 }
376
377 var sql = BuildCreateTableSql(map);
378 await ExecuteNonQueryAsync(sql, cancellationToken: cancellationToken).ConfigureAwait(false);
379 }

다음을 참조함 : BuildCreateTableSql(), Dreamine.Database.Core.Mapping.DatabaseEntityMap.Create(), ExecuteNonQueryAsync(), IsTableExistsAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ Delete< T >()

키로 식별된 엔터티 행을 삭제합니다.

템플릿 파라메터
T엔터티 형식입니다.
매개변수
entity삭제할 엔터티입니다.
반환값
행이 삭제되었는지 여부입니다.
예외
ArgumentNullExceptionentitynull인 경우 발생합니다.
InvalidOperationException엔터티 매핑에 키가 없는 경우 발생합니다.

DatabaseProviderBase.cs 파일의 1069 번째 라인에서 정의되었습니다.

1070 {
1071 ArgumentNullException.ThrowIfNull(entity);
1072
1073 using var connection = CreateOpenedConnection();
1074 return connection.Execute(GetOrBuildSql<T>(SqlKind.Delete), entity) > 0;
1075 }

다음을 참조함 : CreateOpenedConnection(), GetOrBuildSql< T >().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ DeleteAsync< T >()

async Task< bool > Dreamine.Database.Core.Providers.DatabaseProviderBase.DeleteAsync< T > ( T entity,
CancellationToken cancellationToken = default )
inline

키로 식별된 엔터티 행을 비동기적으로 삭제합니다.

템플릿 파라메터
T엔터티 형식입니다.
매개변수
entity삭제할 엔터티입니다.
cancellationToken삭제 취소 토큰입니다.
반환값
행 삭제 여부를 결과로 제공하는 작업입니다.
예외
ArgumentNullExceptionentitynull인 경우 발생합니다.
InvalidOperationException엔터티 매핑에 키가 없는 경우 발생합니다.

DatabaseProviderBase.cs 파일의 1133 번째 라인에서 정의되었습니다.

1134 {
1135 ArgumentNullException.ThrowIfNull(entity);
1136
1137 using var connection = CreateConnection();
1138 await OpenAsync(connection, cancellationToken).ConfigureAwait(false);
1139 return await connection.ExecuteAsync(
1140 new CommandDefinition(GetOrBuildSql<T>(SqlKind.Delete), entity, cancellationToken: cancellationToken))
1141 .ConfigureAwait(false) > 0;
1142 }

다음을 참조함 : CreateConnection(), GetOrBuildSql< T >(), OpenAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ EnsureDatabaseExists()

virtual void Dreamine.Database.Core.Providers.DatabaseProviderBase.EnsureDatabaseExists ( )
inlinevirtual

대상 데이터베이스를 열어 존재 여부를 동기적으로 확인합니다.

DatabaseProviderBase.cs 파일의 145 번째 라인에서 정의되었습니다.

146 {
147 using var connection = CreateConnection();
148 connection.Open();
149 }

다음을 참조함 : CreateConnection().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ EnsureDatabaseExistsAsync()

virtual async Task Dreamine.Database.Core.Providers.DatabaseProviderBase.EnsureDatabaseExistsAsync ( CancellationToken cancellationToken = default)
inlinevirtual

대상 데이터베이스를 열어 존재 여부를 비동기적으로 확인합니다.

매개변수
cancellationToken열기 작업 취소 토큰입니다.
반환값
데이터베이스 확인 작업입니다.

DatabaseProviderBase.cs 파일의 175 번째 라인에서 정의되었습니다.

176 {
177 using var connection = CreateConnection();
178 await OpenAsync(connection, cancellationToken).ConfigureAwait(false);
179 }

다음을 참조함 : CreateConnection(), OpenAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ ExecuteNonQuery()

int Dreamine.Database.Core.Providers.DatabaseProviderBase.ExecuteNonQuery ( string sql,
object? parameters = null )
inline

결과 집합을 반환하지 않는 SQL 명령을 동기적으로 실행합니다.

매개변수
sql실행할 SQL입니다.
parameters선택적 SQL 매개 변수 객체입니다.
반환값
영향을 받은 행 수입니다.
예외
ArgumentNullExceptionsqlnull인 경우 발생합니다.
ArgumentExceptionsql 이 비어 있거나 공백인 경우 발생합니다.

DatabaseProviderBase.cs 파일의 429 번째 라인에서 정의되었습니다.

430 {
431 ArgumentException.ThrowIfNullOrWhiteSpace(sql);
432
433 using var connection = CreateOpenedConnection();
434 return connection.Execute(sql, parameters);
435 }

다음을 참조함 : CreateOpenedConnection().

다음에 의해서 참조됨 : CreateTable< T >().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ExecuteNonQueryAsync()

async Task< int > Dreamine.Database.Core.Providers.DatabaseProviderBase.ExecuteNonQueryAsync ( string sql,
object? parameters = null,
CancellationToken cancellationToken = default )
inline

결과 집합을 반환하지 않는 SQL 명령을 비동기적으로 실행합니다.

매개변수
sql실행할 SQL입니다.
parameters선택적 SQL 매개 변수 객체입니다.
cancellationToken실행 취소 토큰입니다.
반환값
영향을 받은 행 수를 결과로 제공하는 작업입니다.
예외
ArgumentNullExceptionsqlnull인 경우 발생합니다.
ArgumentExceptionsql 이 비어 있거나 공백인 경우 발생합니다.

DatabaseProviderBase.cs 파일의 493 번째 라인에서 정의되었습니다.

497 {
498 ArgumentException.ThrowIfNullOrWhiteSpace(sql);
499
500 using var connection = CreateConnection();
501 await OpenAsync(connection, cancellationToken).ConfigureAwait(false);
502 return await connection.ExecuteAsync(new CommandDefinition(sql, parameters, cancellationToken: cancellationToken))
503 .ConfigureAwait(false);
504 }

다음을 참조함 : CreateConnection(), OpenAsync().

다음에 의해서 참조됨 : CreateTableAsync< T >().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ ExecuteScalar< T >()

T? Dreamine.Database.Core.Providers.DatabaseProviderBase.ExecuteScalar< T > ( string sql,
object? parameters = null )
inline

SQL 명령을 실행하고 첫 번째 스칼라 값을 반환합니다.

템플릿 파라메터
T결과 값 형식입니다.
매개변수
sql실행할 SQL입니다.
parameters선택적 SQL 매개 변수 객체입니다.
반환값
변환된 스칼라 값입니다.
예외
ArgumentNullExceptionsqlnull인 경우 발생합니다.
ArgumentExceptionsql 이 비어 있거나 공백인 경우 발생합니다.

DatabaseProviderBase.cs 파일의 562 번째 라인에서 정의되었습니다.

563 {
564 ArgumentException.ThrowIfNullOrWhiteSpace(sql);
565
566 using var connection = CreateOpenedConnection();
567 return connection.ExecuteScalar<T>(sql, parameters);
568 }

다음을 참조함 : CreateOpenedConnection().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ ExecuteScalarAsync< T >()

async Task< T?> Dreamine.Database.Core.Providers.DatabaseProviderBase.ExecuteScalarAsync< T > ( string sql,
object? parameters = null,
CancellationToken cancellationToken = default )
inline

SQL 명령을 비동기적으로 실행하고 첫 번째 스칼라 값을 반환합니다.

템플릿 파라메터
T결과 값 형식입니다.
매개변수
sql실행할 SQL입니다.
parameters선택적 SQL 매개 변수 객체입니다.
cancellationToken실행 취소 토큰입니다.
반환값
변환된 스칼라 값을 결과로 제공하는 작업입니다.
예외
ArgumentNullExceptionsqlnull인 경우 발생합니다.
ArgumentExceptionsql 이 비어 있거나 공백인 경우 발생합니다.

DatabaseProviderBase.cs 파일의 634 번째 라인에서 정의되었습니다.

638 {
639 ArgumentException.ThrowIfNullOrWhiteSpace(sql);
640
641 using var connection = CreateConnection();
642 await OpenAsync(connection, cancellationToken).ConfigureAwait(false);
643 return await connection.ExecuteScalarAsync<T>(
644 new CommandDefinition(sql, parameters, cancellationToken: cancellationToken))
645 .ConfigureAwait(false);
646 }

다음을 참조함 : CreateConnection(), OpenAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ GetOrBuildSql< T >()

string Dreamine.Database.Core.Providers.DatabaseProviderBase.GetOrBuildSql< T > ( SqlKind kind)
inlineprivate

데이터 조작 SQL을 캐시에서 가져오거나 생성합니다.

템플릿 파라메터
T대상 엔터티 형식입니다.
매개변수
kind필요한 SQL 작업 종류입니다.
반환값
캐시되었거나 새로 생성된 SQL입니다.
예외
ArgumentOutOfRangeException지원하지 않는 kind 값인 경우 발생합니다.

DatabaseProviderBase.cs 파일의 1434 번째 라인에서 정의되었습니다.

1435 {
1436 var key = (typeof(T), Kind, kind);
1437 return SqlCache.GetOrAdd(key, _ =>
1438 {
1439 var map = DatabaseEntityMap.Create<T>();
1440 return kind switch
1441 {
1442 SqlKind.Insert => BuildInsertSql(map),
1443 SqlKind.Update => BuildUpdateSql(map),
1444 SqlKind.Delete => BuildDeleteSql(map),
1445 _ => throw new ArgumentOutOfRangeException(nameof(kind))
1446 };
1447 });
1448 }

다음을 참조함 : 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 >().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ GetSqlType()

string Dreamine.Database.Core.Providers.DatabaseProviderBase.GetSqlType ( DatabasePropertyMap property)
abstractprotected

속성 매핑에 대응하는 공급자별 SQL 열 형식을 반환합니다.

매개변수
property변환할 속성 매핑입니다.
반환값
SQL 열 형식 선언입니다.

◆ Insert< T >()

엔터티를 삽입합니다.

템플릿 파라메터
T엔터티 형식입니다.
매개변수
entity삽입할 엔터티입니다.
반환값
행이 삽입되었는지 여부입니다.
예외
ArgumentNullExceptionentitynull인 경우 발생합니다.

DatabaseProviderBase.cs 파일의 831 번째 라인에서 정의되었습니다.

832 {
833 ArgumentNullException.ThrowIfNull(entity);
834
835 using var connection = CreateOpenedConnection();
836 return connection.Execute(GetOrBuildSql<T>(SqlKind.Insert), entity) > 0;
837 }

다음을 참조함 : CreateOpenedConnection(), GetOrBuildSql< T >().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ InsertAsync< T >()

async Task< bool > Dreamine.Database.Core.Providers.DatabaseProviderBase.InsertAsync< T > ( T entity,
CancellationToken cancellationToken = default )
inline

엔터티를 비동기적으로 삽입합니다.

템플릿 파라메터
T엔터티 형식입니다.
매개변수
entity삽입할 엔터티입니다.
cancellationToken삽입 취소 토큰입니다.
반환값
행 삽입 여부를 결과로 제공하는 작업입니다.
예외
ArgumentNullExceptionentitynull인 경우 발생합니다.

DatabaseProviderBase.cs 파일의 887 번째 라인에서 정의되었습니다.

888 {
889 ArgumentNullException.ThrowIfNull(entity);
890
891 using var connection = CreateConnection();
892 await OpenAsync(connection, cancellationToken).ConfigureAwait(false);
893 return await connection.ExecuteAsync(
894 new CommandDefinition(GetOrBuildSql<T>(SqlKind.Insert), entity, cancellationToken: cancellationToken))
895 .ConfigureAwait(false) > 0;
896 }

다음을 참조함 : CreateConnection(), GetOrBuildSql< T >(), OpenAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ IsTableExists()

bool Dreamine.Database.Core.Providers.DatabaseProviderBase.IsTableExists ( string tableName)
abstract

지정한 이름의 테이블이 존재하는지 확인합니다.

매개변수
tableName확인할 테이블 이름입니다.
반환값
테이블 존재 여부입니다.

다음에 의해서 참조됨 : CreateTable< T >(), IsTableExists< T >().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ IsTableExists< T >()

T 에 매핑된 테이블이 존재하는지 확인합니다.

템플릿 파라메터
T확인할 엔터티 형식입니다.
반환값
테이블 존재 여부입니다.

DatabaseProviderBase.cs 파일의 205 번째 라인에서 정의되었습니다.

206 {
207 return IsTableExists(DatabaseEntityMap.Create<T>().TableName);
208 }

다음을 참조함 : Dreamine.Database.Core.Mapping.DatabaseEntityMap.Create(), IsTableExists(), Dreamine.Database.Core.Mapping.DatabaseEntityMap.TableName.

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ IsTableExistsAsync()

Task< bool > Dreamine.Database.Core.Providers.DatabaseProviderBase.IsTableExistsAsync ( string tableName,
CancellationToken cancellationToken = default )
abstract

지정한 이름의 테이블이 존재하는지 비동기적으로 확인합니다.

매개변수
tableName확인할 테이블 이름입니다.
cancellationToken확인 작업 취소 토큰입니다.
반환값
테이블 존재 여부를 결과로 제공하는 작업입니다.

다음에 의해서 참조됨 : CreateTableAsync< T >(), IsTableExistsAsync< T >().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ IsTableExistsAsync< T >()

Task< bool > Dreamine.Database.Core.Providers.DatabaseProviderBase.IsTableExistsAsync< T > ( CancellationToken cancellationToken = default)
inline

T 에 매핑된 테이블이 존재하는지 비동기적으로 확인합니다.

템플릿 파라메터
T확인할 엔터티 형식입니다.
매개변수
cancellationToken확인 작업 취소 토큰입니다.
반환값
테이블 존재 여부를 결과로 제공하는 작업입니다.

DatabaseProviderBase.cs 파일의 242 번째 라인에서 정의되었습니다.

243 {
244 return IsTableExistsAsync(DatabaseEntityMap.Create<T>().TableName, cancellationToken);
245 }

다음을 참조함 : Dreamine.Database.Core.Mapping.DatabaseEntityMap.Create(), IsTableExistsAsync(), Dreamine.Database.Core.Mapping.DatabaseEntityMap.TableName.

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OpenAsync()

async Task Dreamine.Database.Core.Providers.DatabaseProviderBase.OpenAsync ( IDbConnection connection,
CancellationToken cancellationToken )
inlinestaticprivate

가능한 경우 비동기 API로 데이터베이스 연결을 엽니다.

매개변수
connection열 데이터베이스 연결입니다.
cancellationToken열기 취소 토큰입니다.
반환값
연결 열기 작업입니다.

DatabaseProviderBase.cs 파일의 1505 번째 라인에서 정의되었습니다.

1506 {
1507 if (connection is System.Data.Common.DbConnection dbConnection)
1508 {
1509 await dbConnection.OpenAsync(cancellationToken).ConfigureAwait(false);
1510 return;
1511 }
1512
1513 cancellationToken.ThrowIfCancellationRequested();
1514 connection.Open();
1515 }

다음에 의해서 참조됨 : DeleteAsync< T >(), EnsureDatabaseExistsAsync(), ExecuteNonQueryAsync(), ExecuteScalarAsync< T >(), InsertAsync< T >(), QueryAsync< T >(), UpdateAsync< T >().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ Query< T >()

IEnumerable< T > Dreamine.Database.Core.Providers.DatabaseProviderBase.Query< T > ( string sql,
object? parameters = null )
inline

SQL 조회를 실행하고 행을 T 로 매핑합니다.

템플릿 파라메터
T행 매핑 형식입니다.
매개변수
sql실행할 SQL 조회문입니다.
parameters선택적 조회 매개 변수 객체입니다.
반환값
메모리에 구체화된 매핑 행 시퀀스입니다.
예외
ArgumentNullExceptionsqlnull인 경우 발생합니다.
ArgumentExceptionsql 이 비어 있거나 공백인 경우 발생합니다.

DatabaseProviderBase.cs 파일의 704 번째 라인에서 정의되었습니다.

705 {
706 ArgumentException.ThrowIfNullOrWhiteSpace(sql);
707
708 using var connection = CreateOpenedConnection();
709 return connection.Query<T>(sql, parameters).ToArray();
710 }

다음을 참조함 : CreateOpenedConnection().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ QueryAsync< T >()

async Task< IReadOnlyList< T > > Dreamine.Database.Core.Providers.DatabaseProviderBase.QueryAsync< T > ( string sql,
object? parameters = null,
CancellationToken cancellationToken = default )
inline

SQL 조회를 비동기적으로 실행하고 행을 T 로 매핑합니다.

템플릿 파라메터
T행 매핑 형식입니다.
매개변수
sql실행할 SQL 조회문입니다.
parameters선택적 조회 매개 변수 객체입니다.
cancellationToken조회 취소 토큰입니다.
반환값
매핑된 행의 읽기 전용 목록을 결과로 제공하는 작업입니다.
예외
ArgumentNullExceptionsqlnull인 경우 발생합니다.
ArgumentExceptionsql 이 비어 있거나 공백인 경우 발생합니다.

DatabaseProviderBase.cs 파일의 776 번째 라인에서 정의되었습니다.

780 {
781 ArgumentException.ThrowIfNullOrWhiteSpace(sql);
782
783 using var connection = CreateConnection();
784 await OpenAsync(connection, cancellationToken).ConfigureAwait(false);
785 var rows = await connection.QueryAsync<T>(
786 new CommandDefinition(sql, parameters, cancellationToken: cancellationToken))
787 .ConfigureAwait(false);
788 return rows.ToArray();
789 }

다음을 참조함 : CreateConnection(), OpenAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ QuoteIdentifier()

string Dreamine.Database.Core.Providers.DatabaseProviderBase.QuoteIdentifier ( string identifier)
abstractprotected

공급자 문법에 맞게 SQL 식별자를 인용합니다.

매개변수
identifier인용할 식별자입니다.
반환값
인용된 식별자입니다.

다음에 의해서 참조됨 : BuildInsertSql().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ RequireKey()

DatabasePropertyMap Dreamine.Database.Core.Providers.DatabaseProviderBase.RequireKey ( DatabaseEntityMap map)
inlinestaticprivate

엔터티 매핑에서 필수 키 속성을 가져옵니다.

매개변수
map검사할 엔터티 매핑입니다.
반환값
매핑된 키 속성입니다.
예외
InvalidOperationException키 속성이 정의되지 않은 경우 발생합니다.

DatabaseProviderBase.cs 파일의 1549 번째 라인에서 정의되었습니다.

1550 {
1551 return map.Key ?? throw new InvalidOperationException(
1552 $"Entity [{map.EntityType.FullName}] does not define a key. Add [DatabaseKey] or an Id property.");
1553 }

다음에 의해서 참조됨 : BuildDeleteSql(), BuildUpdateSql().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ Update< T >()

키로 식별된 엔터티 행을 갱신합니다.

템플릿 파라메터
T엔터티 형식입니다.
매개변수
entity갱신할 엔터티입니다.
반환값
행이 갱신되었는지 여부입니다.
예외
ArgumentNullExceptionentitynull인 경우 발생합니다.
InvalidOperationException엔터티 매핑에 키가 없는 경우 발생합니다.

DatabaseProviderBase.cs 파일의 946 번째 라인에서 정의되었습니다.

947 {
948 ArgumentNullException.ThrowIfNull(entity);
949
950 using var connection = CreateOpenedConnection();
951 return connection.Execute(GetOrBuildSql<T>(SqlKind.Update), entity) > 0;
952 }

다음을 참조함 : CreateOpenedConnection(), GetOrBuildSql< T >().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ UpdateAsync< T >()

async Task< bool > Dreamine.Database.Core.Providers.DatabaseProviderBase.UpdateAsync< T > ( T entity,
CancellationToken cancellationToken = default )
inline

키로 식별된 엔터티 행을 비동기적으로 갱신합니다.

템플릿 파라메터
T엔터티 형식입니다.
매개변수
entity갱신할 엔터티입니다.
cancellationToken갱신 취소 토큰입니다.
반환값
행 갱신 여부를 결과로 제공하는 작업입니다.
예외
ArgumentNullExceptionentitynull인 경우 발생합니다.
InvalidOperationException엔터티 매핑에 키가 없는 경우 발생합니다.

DatabaseProviderBase.cs 파일의 1010 번째 라인에서 정의되었습니다.

1011 {
1012 ArgumentNullException.ThrowIfNull(entity);
1013
1014 using var connection = CreateConnection();
1015 await OpenAsync(connection, cancellationToken).ConfigureAwait(false);
1016 return await connection.ExecuteAsync(
1017 new CommandDefinition(GetOrBuildSql<T>(SqlKind.Update), entity, cancellationToken: cancellationToken))
1018 .ConfigureAwait(false) > 0;
1019 }

다음을 참조함 : CreateConnection(), GetOrBuildSql< T >(), OpenAsync().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ SqlCache

readonly ConcurrentDictionary<(Type, DatabaseProviderKind, SqlKind), string> Dreamine.Database.Core.Providers.DatabaseProviderBase.SqlCache = new()
staticprivate

Sql Cache 값을 보관합니다.

DatabaseProviderBase.cs 파일의 67 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : GetOrBuildSql< T >().

속성 문서화

◆ ConnectionString

string Dreamine.Database.Core.Providers.DatabaseProviderBase.ConnectionString
get

데이터베이스 연결 문자열을 가져옵니다.

DatabaseProviderBase.cs 파일의 125 번째 라인에서 정의되었습니다.

125{ get; }

다음에 의해서 참조됨 : DatabaseProviderBase().

◆ Kind

DatabaseProviderKind Dreamine.Database.Core.Providers.DatabaseProviderBase.Kind
getabstract

구현 공급자의 종류를 가져옵니다.

DatabaseProviderBase.cs 파일의 115 번째 라인에서 정의되었습니다.

115{ get; }

다음에 의해서 참조됨 : GetOrBuildSql< T >().

◆ ParameterPrefix

virtual string Dreamine.Database.Core.Providers.DatabaseProviderBase.ParameterPrefix
getprotected

SQL 매개 변수 이름 앞에 붙는 공급자별 접두사를 가져옵니다.

DatabaseProviderBase.cs 파일의 135 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : BuildInsertSql().


이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: