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

더 자세히 ...

Dreamine.Database.Oracle.OracleDatabaseProvider에 대한 상속 다이어그램 :
Dreamine.Database.Oracle.OracleDatabaseProvider에 대한 협력 다이어그램:

Public 멤버 함수

 OracleDatabaseProvider (string connectionString)
override bool IsTableExists (string tableName)
override async Task< bool > IsTableExistsAsync (string tableName, CancellationToken cancellationToken=default)

Protected 멤버 함수

override IDbConnection CreateConnection ()
override string QuoteIdentifier (string identifier)
override string BuildCreateTableSql (DatabaseEntityMap map)
override string GetSqlType (DatabasePropertyMap property)

속성

override DatabaseProviderKind Kind [get]
override string ParameterPrefix [get]

상세한 설명

Oracle용 Dreamine 데이터베이스 공급자 구현을 제공합니다.

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

생성자 & 소멸자 문서화

◆ OracleDatabaseProvider()

Dreamine.Database.Oracle.OracleDatabaseProvider.OracleDatabaseProvider ( string connectionString)
inline

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

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

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

52 : base(connectionString)
53 {
54 }

멤버 함수 문서화

◆ BuildCreateTableSql()

override string Dreamine.Database.Oracle.OracleDatabaseProvider.BuildCreateTableSql ( DatabaseEntityMap map)
inlineprotected

IDENTITY 키를 지원하는 Oracle CREATE TABLE SQL을 만듭니다.

매개변수
map테이블 엔터티 매핑입니다.
반환값
Oracle CREATE TABLE SQL입니다.

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

286 {
287 var columns = map.Properties.Select(property =>
288 {
289 var sql = $"{QuoteIdentifier(property.ColumnName)} {GetSqlType(property)}";
290 if (property.IsKey)
291 {
292 sql += property.IsGenerated ? " GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY" : " PRIMARY KEY";
293 }
294
295 return sql;
296 });
297
298 return $"CREATE TABLE {QuoteIdentifier(map.TableName)} ({string.Join(", ", columns)})";
299 }

◆ CreateConnection()

override IDbConnection Dreamine.Database.Oracle.OracleDatabaseProvider.CreateConnection ( )
inlineprotected

구성된 연결 문자열을 사용하는 새 Oracle 연결을 만듭니다.

반환값
닫힌 Oracle 연결입니다.

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

211 {
212 return new OracleConnection(ConnectionString);
213 }

◆ GetSqlType()

override string Dreamine.Database.Oracle.OracleDatabaseProvider.GetSqlType ( DatabasePropertyMap property)
inlineprotected

CLR 속성 형식을 대응하는 Oracle 열 형식으로 변환합니다.

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

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

326 {
327 var type = property.PropertyType;
328
329 if (type == typeof(bool) ||
330 type == typeof(byte) ||
331 type == typeof(short) ||
332 type == typeof(int) ||
333 type == typeof(long))
334 {
335 return "NUMBER";
336 }
337
338 if (type == typeof(float) ||
339 type == typeof(double) ||
340 type == typeof(decimal))
341 {
342 return "NUMBER(18, 4)";
343 }
344
345 if (type == typeof(DateTime) || type == typeof(DateTimeOffset))
346 {
347 return "TIMESTAMP";
348 }
349
350 if (type == typeof(byte[]))
351 {
352 return "BLOB";
353 }
354
355 return "NVARCHAR2(2000)";
356 }

◆ IsTableExists()

override bool Dreamine.Database.Oracle.OracleDatabaseProvider.IsTableExists ( string tableName)
inline

현재 Oracle 스키마에 지정한 테이블이 존재하는지 확인합니다.

매개변수
tableName확인할 테이블 이름입니다.
반환값
테이블 존재 여부입니다.
예외
ArgumentNullExceptiontableNamenull인 경우 발생합니다.
ArgumentExceptiontableName 이 비어 있거나 공백인 경우 발생합니다.

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

117 {
118 ArgumentException.ThrowIfNullOrWhiteSpace(tableName);
119
120 const string sql = """
121 SELECT COUNT(1)
122 FROM user_tables
123 WHERE table_name = UPPER(:TableName)
124 """;
125
126 return ExecuteScalar<decimal>(sql, new { TableName = tableName }) > 0;
127 }

◆ IsTableExistsAsync()

override async Task< bool > Dreamine.Database.Oracle.OracleDatabaseProvider.IsTableExistsAsync ( string tableName,
CancellationToken cancellationToken = default )
inline

현재 Oracle 스키마에 지정한 테이블이 존재하는지 비동기적으로 확인합니다.

매개변수
tableName확인할 테이블 이름입니다.
cancellationToken조회 취소 토큰입니다.
반환값
테이블 존재 여부를 결과로 제공하는 작업입니다.
예외
ArgumentNullExceptiontableNamenull인 경우 발생합니다.
ArgumentExceptiontableName 이 비어 있거나 공백인 경우 발생합니다.

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

180 {
181 ArgumentException.ThrowIfNullOrWhiteSpace(tableName);
182
183 const string sql = """
184 SELECT COUNT(1)
185 FROM user_tables
186 WHERE table_name = UPPER(:TableName)
187 """;
188
189 var count = await ExecuteScalarAsync<decimal>(sql, new { TableName = tableName }, cancellationToken)
190 .ConfigureAwait(false);
191 return count > 0;
192 }

◆ QuoteIdentifier()

override string Dreamine.Database.Oracle.OracleDatabaseProvider.QuoteIdentifier ( string identifier)
inlineprotected

Oracle 큰따옴표 문법으로 대문자 식별자를 안전하게 인용합니다.

매개변수
identifier인용할 식별자입니다.
반환값
이스케이프하고 인용한 식별자입니다.
예외
ArgumentNullExceptionidentifiernull인 경우 발생합니다.
ArgumentExceptionidentifier 가 비어 있거나 공백인 경우 발생합니다.

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

256 {
257 ArgumentException.ThrowIfNullOrWhiteSpace(identifier);
258 return "\"" + identifier.Replace("\"", "\"\"", StringComparison.Ordinal).ToUpperInvariant() + "\"";
259 }

속성 문서화

◆ Kind

override DatabaseProviderKind Dreamine.Database.Oracle.OracleDatabaseProvider.Kind
get

Oracle 공급자 종류를 가져옵니다.

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

◆ ParameterPrefix

override string Dreamine.Database.Oracle.OracleDatabaseProvider.ParameterPrefix
getprotected

Oracle 바인드 변수에 사용하는 콜론 접두사를 가져옵니다.

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


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