SnapObjects ORM

.NET을 위한 간편, 강력, 신속한 ORM

SnapObjects ORM은 .NET 개발을 보다 간편하게 만들어줍니다. 또한 믿기 힘들 정도로 사용법이 간단하면서도 풍부한 기능을 갖추고 있습니다. generated SQL을 완벽하게 제어할 수 있도록 해주며, 사실상 ADO.NET과 동일하게 동작합니다.

SnapObjects ORM

장점

Simple, Minimal Coding

Simple, Minimal Coding

고급 기능을 간단하게 코드로 작성할 수 있으며, 유지보수 비용 최소화를 위해 데이터 액세스가 모델에 있습니다.

Type-Safe Queries

Type-Safe Queries

.NET 오브젝트는 type safe한 방식으로 쿼리 조건으로 사용되며, SQL 검증을 위한 테스트용 API가 제공됩니다.

Flexible SQL Generation

Flexible SQL Generation

SQL 생성은 포괄적인 모델 Attribute Set을 통해서 제어되며, 필요하다면 raw SQL을 작성할 수도 있습니다.

Loose Relationships

Loose Relationships

관계는 사전 정의되는 대신 코딩에서 정의되며, 특정 쿼리에 대해서만 유지됩니다.

Transaction-Oriented

Transaction-Oriented

쿼리, 업데이트 및 작업은 추적 가능하며, 트랜잭션 관리가 자동으로 적용됩니다.

Ultra-Fast Performance

Ultra-Fast Performance

ADO.NET은 오버헤드를 거의 발생시키지 않으며 쿼리, 업데이트 및 작업은 일괄적으로 실행됩니다.

Code Snippets

기능

Model


모델은 데이터베이스 테이블에 열을 매핑하며 관련 SQL을 포함하고 있습니다. 모델의 SQL은 개발자가 SQL을 제어할 수 있도록 해주는 다양한 Attribute를 기반으로 생성됩니다. 또한 모델은 모델 중첩을 통해 Master-Detail-Detail과 같은 복잡한 관계를 표현할 수 있습니다.

SQLModelMapper


SQLModelMapper는 트랜잭션 지향적인 데이터 조작 Component입니다. 데이터베이스 CRUD 연산을 간소화할 수 있는 오브젝트와 메소드를 제공하며, 추적된 항목에 자동 트랜잭션 관리를 적용합니다. 추적된 항목들을 성능 향상을 위해 일괄적으로 실행할 수도 있습니다.

Query

쿼리를 실행하고 추가적인 처리를 위해 Result Set을 임시 오브젝트에 로드하거나 계산된 Result Set을 반환합니다.

 Plain Load

모델에 정의된 쿼리를 실행하고 Result Set을 자체 생성된 오브젝트에 로드합니다.

 Aggregate & Scalar Load

모델에 정의된 쿼리를 실행하고 집계나 스칼라 계산값을 Result Set과 함께 반환합니다.

Tracking

트랜잭션 관리를 위해 모델의 변경 사항, SQL 및 작업을 추적합니다.

 Track Model

모델(들)의 데이터베이스 Insert/Update/Delete 연산을 추적 및 캐싱합니다.

 Track SQL CUD

데이터베이스 테이블의 Insert/Update/Delete 연산을 추적합니다.

  Track Action

간단한 CUD 연산이 아닌, 보다 복잡한 상황에서의 추적을 수행합니다. 예를 들어 데이터베이스에서 조회한 특정한 값을 추적하거나, "Save" 연산이 취소되었는지의 여부를 추적할 수 있습니다.

 Track Master/Detail

Master-Detail 관계에 있는 모델(들)의 데이터 상태를 추적 및 캐싱합니다.

Execute

모델, SQL 또는 작업에서 추적된 모든 데이터베이스 연산을 일괄적으로 데이터베이스에 제출해 실행하고 ModelMapper가 트랜잭션을 관리하도록 합니다.

 SaveChanges

추적된 항목들(모델의 변경 사항, SQL 및 작업)을 실행하여 모든 변경 사항을 데이터베이스에 저장합니다. 추적된 항목들을 성능 향상을 위해 일괄적으로 실행할 수도 있습니다.

 Validate

추적된 모델들의 모든 데이터를 검증합니다.

Async

비동기적인 방식으로 CRUD 연산을 수행합니다.

 Async Queries

비동기적으로 데이터를 조회하며, plain Result Set 또는 processed Result Set을 로드합니다. 

 Async Execution

데이터베이스의 모든 변경 사항을 비동기적으로 저장합니다.

SQLExecutor


SQLExecutor는 ADO.NET의 핵심 Component를 캡슐화하는 데이터베이스 조작 인터페이스 Set입니다. SQLExecutor를 사용해 동적 SQL문을 직접적으로 실행하고, SQLBuilder 오브젝트 함수를 실행하고,  모델 쿼리를 실행시킬 수 있습니다. 

 Execute

명령을 실행하고 영향을 받은 행의 수를 반환합니다.

 Query

쿼리를 실행하고 결과물을 매핑합니다.

SQLBuilder


SQLBuilder는 특정 프로그램이나 데이터베이스에 의존하지 않는 방식으로 SQL문을 생성합니다. 구체적으로는 구문 구조를 제작하고, SnapObject의 DataContext 오브젝트와 연계하여 특정 데이터베이스에 특화된 SQL문을 생성합니다.

 Build

SQL 구문 구조를 제작합니다.

 Validate

지정된 데이터베이스를 위해 생성된 raw SQL 문자열을 검증합니다.