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

더 자세히 ...

정적 Public 멤버 함수

static DatabaseEntityMap Create< T > ()
static DatabaseEntityMap Create (Type entityType)

속성

Type EntityType [get]
string TableName [get]
IReadOnlyList< DatabasePropertyMapProperties [get]
DatabasePropertyMapKey [get]
IReadOnlyList< DatabasePropertyMapInsertableProperties [get]
IReadOnlyList< DatabasePropertyMapUpdatableProperties [get]

Private 멤버 함수

 DatabaseEntityMap (Type entityType, string tableName, IReadOnlyList< DatabasePropertyMap > properties)

정적 Private 멤버 함수

static DatabaseEntityMap CreateUncached (Type entityType)

정적 Private 속성

static readonly ConcurrentDictionary< Type, DatabaseEntityMapCache = new()

상세한 설명

엔터티 형식의 데이터베이스 매핑 메타데이터를 설명합니다.

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

생성자 & 소멸자 문서화

◆ DatabaseEntityMap()

Dreamine.Database.Core.Mapping.DatabaseEntityMap.DatabaseEntityMap ( Type entityType,
string tableName,
IReadOnlyList< DatabasePropertyMap > properties )
inlineprivate

분석된 엔터티 형식과 테이블 및 속성 매핑으로 인스턴스를 초기화합니다.

매개변수
entityType매핑된 엔터티 형식입니다.
tableName매핑된 테이블 이름입니다.
properties엔터티의 속성 매핑 목록입니다.

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

60 {
61 EntityType = entityType;
62 TableName = tableName;
63 Properties = properties;
64 Key = properties.FirstOrDefault(x => x.IsKey);
65 InsertableProperties = properties.Where(x => !x.IsGenerated).ToArray();
66 UpdatableProperties = properties.Where(x => !x.IsGenerated && !x.IsKey).ToArray();
67 }

다음을 참조함 : EntityType, InsertableProperties, Key, Properties, TableName, UpdatableProperties.

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

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

멤버 함수 문서화

◆ Create()

DatabaseEntityMap Dreamine.Database.Core.Mapping.DatabaseEntityMap.Create ( Type entityType)
inlinestatic

지정한 엔터티 형식의 매핑 메타데이터를 생성하거나 캐시에서 가져옵니다.

매개변수
entityType매핑할 엔터티 형식입니다.
반환값
생성되었거나 캐시된 엔터티 매핑입니다.
예외
ArgumentNullExceptionentityTypenull인 경우 발생합니다.

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

191 {
192 ArgumentNullException.ThrowIfNull(entityType);
193 return Cache.GetOrAdd(entityType, CreateUncached);
194 }

다음을 참조함 : Cache, CreateUncached(), DatabaseEntityMap().

다음에 의해서 참조됨 : Create< T >(), Dreamine.Database.Core.Providers.DatabaseProviderBase.CreateTable< T >(), Dreamine.Database.Core.Providers.DatabaseProviderBase.CreateTableAsync< T >(), Dreamine.Database.Core.Providers.DatabaseProviderBase.GetOrBuildSql< T >(), Dreamine.Database.Core.Providers.DatabaseProviderBase.IsTableExists< T >(), Dreamine.Database.Core.Providers.DatabaseProviderBase.IsTableExistsAsync< T >().

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

◆ Create< T >()

제네릭 엔터티 형식의 매핑 메타데이터를 생성하거나 캐시에서 가져옵니다.

템플릿 파라메터
T매핑할 엔터티 형식입니다.
반환값
생성되었거나 캐시된 엔터티 매핑입니다.

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

154 {
155 return Create(typeof(T));
156 }

다음을 참조함 : Create(), DatabaseEntityMap().

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

◆ CreateUncached()

DatabaseEntityMap Dreamine.Database.Core.Mapping.DatabaseEntityMap.CreateUncached ( Type entityType)
inlinestaticprivate

리플렉션을 사용하여 캐시되지 않은 새 엔터티 매핑을 만듭니다.

매개변수
entityType분석할 엔터티 형식입니다.
반환값
분석된 엔터티 매핑입니다.

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

221 {
222 var tableName = entityType.GetCustomAttribute<DatabaseTableAttribute>()?.Name ?? entityType.Name;
223 var properties = entityType
224 .GetProperties(BindingFlags.Instance | BindingFlags.Public)
225 .Where(x => x.CanRead)
226 .Where(x => x.GetCustomAttribute<DatabaseIgnoreAttribute>() is null)
227 .Select(DatabasePropertyMap.Create)
228 .ToArray();
229
230 return new DatabaseEntityMap(entityType, tableName, properties);
231 }

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

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

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

멤버 데이터 문서화

◆ Cache

readonly ConcurrentDictionary<Type, DatabaseEntityMap> Dreamine.Database.Core.Mapping.DatabaseEntityMap.Cache = new()
staticprivate

Cache 값을 보관합니다.

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

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

속성 문서화

◆ EntityType

Type Dreamine.Database.Core.Mapping.DatabaseEntityMap.EntityType
get

매핑된 엔터티 형식을 가져옵니다.

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

77{ get; }

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

◆ InsertableProperties

IReadOnlyList<DatabasePropertyMap> Dreamine.Database.Core.Mapping.DatabaseEntityMap.InsertableProperties
get

INSERT 문에 포함할 수 있는 속성을 가져옵니다.

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

117{ get; }

다음에 의해서 참조됨 : Dreamine.Database.Core.Providers.DatabaseProviderBase.BuildInsertSql(), DatabaseEntityMap().

◆ Key

DatabasePropertyMap? Dreamine.Database.Core.Mapping.DatabaseEntityMap.Key
get

존재하는 경우 매핑된 키 속성을 가져옵니다.

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

107{ get; }

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

◆ Properties

IReadOnlyList<DatabasePropertyMap> Dreamine.Database.Core.Mapping.DatabaseEntityMap.Properties
get

모든 매핑된 속성을 가져옵니다.

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

97{ get; }

다음에 의해서 참조됨 : Dreamine.Database.Core.Providers.DatabaseProviderBase.BuildCreateTableSql(), DatabaseEntityMap().

◆ TableName

string Dreamine.Database.Core.Mapping.DatabaseEntityMap.TableName
get

매핑된 테이블 이름을 가져옵니다.

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

87{ get; }

다음에 의해서 참조됨 : DatabaseEntityMap(), Dreamine.Database.Core.Providers.DatabaseProviderBase.IsTableExists< T >(), Dreamine.Database.Core.Providers.DatabaseProviderBase.IsTableExistsAsync< T >().

◆ UpdatableProperties

IReadOnlyList<DatabasePropertyMap> Dreamine.Database.Core.Mapping.DatabaseEntityMap.UpdatableProperties
get

UPDATE 문에 포함할 수 있는 속성을 가져옵니다.

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

127{ get; }

다음에 의해서 참조됨 : Dreamine.Database.Core.Providers.DatabaseProviderBase.BuildUpdateSql(), DatabaseEntityMap().


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