※このページは、2019年8月13日時点のGetting Started with SnapObjects – Features List of SnapObjects 1.0.xを日本語訳したものです。
このドキュメントでは、SnapObjects 1.0.xの新機能を紹介します。
NuGetで以下のSnapObjectsランタイムパッケージがダウンロードできます。
以下は、SnapObjectsで提供される主要なオブジェクトです。
DataContextは、データベース接続とトランザクションを管理するオブジェクトです。
SqlModelMapperは、.NET Standardに準拠したトランザクション指向のデータ操作コンポーネントです。 複数テーブルのデータを使用したモデル構築、ネステッドレベルのリレーションシップサポート、ビジネスエンティティ(トップレベルのオブジェクトおよびそのすべての子)の明示的および暗黙的なトランザクション管理を提供します。
SqlExecutorは、ADO.NETのコアコンポーネントをカプセル化したデータベース操作インターフェースのセットです。 SqlExecutorを使うことで動的SQLステートメントの直接実行、SQLBuilderオブジェクト関数の実行、モデルクエリの実行を行うことができます。
SqlExecutorはSQLおよび自動生成されたSQLと不要なパフォーマンスのボトルネックを防止するデータの遅延ロードをサポートし、POCOまたは動的モデルにリザルトセットをバインドできます。
SqlBuilderは、プログラムやDBに依存しない方法でSQLステートメントを構築します。 SqlBuilderでシンタックス構造を構築すれば、シンタックス構造とDataContextに基づいてデータベース固有のSQLステートメントが生成されます。
SnapObjectsで提供されているオブジェクトおよびAPIの詳細は、SnapObjects .NET APIリファレンスを参照してください。
SQL生成は、包括的なモデル属性セットで制御します。
SnapObjectsのトランザクションは明示的にも暗黙的にもできます。
SQLExecutorと異なり、SqlModelMapper のトランザクション(明示的、暗黙的を問わず)には、CRUDオペレーションだけでなく、SQLステートメントやC#オペレーションも含まれます。 SqlModelMapperのトランザクション(明示的、暗黙的を問わず)に含まれるものは、さまざまな”track(追跡)”メソッドにより識別できます。
高度な機能をシンプルなコードで実現でき、データアクセスのメンテナンス性を最大限に高めることができるモデルです。
.NETオブジェクトはタイプセーフなクエリのために使用され、テストAPIはSQLを検証するために提供されています。
リレーションシップはコーディングで定義する(事前定義しない)ため、特定のクエリだけで保持されます。
ADO.NETと比較してもオーバーヘッドは少なく、クエリやアップデート、アクションはまとめて実行されます。