私はservicestackを使用しており、データアクセス層にormliteを使用することを計画しています。これらのテーブルがあります(SQL Server 2005)
Table ITEM
ID PK
...
Table SUBITEM1
ID PK FK -> ITEM(ID)
...
Table SUBITEM2
ID PK FK -> ITEM(ID)
...
Table POST
ID PK
...
Table COMMENT
ID PK
...
Table DOWNLOAD
ID PK
...
Table POST_COMMENT
ID PK
POST_ID FK -> POST(ID)
COMMENT_ID FK -> COMMENT(ID)
Table DOWNLOAD_COMMENT
ID PK
DOWNLOAD_ID FK -> DOWNLOAD(ID)
COMMENT_ID FK -> COMMENT(ID)
各テーブルのクラスを作成し、アノテーション(自動インクリメント、参照など)を使用してそれらをマップしました。
「エンティティ」(アイテム、投稿、コメント、ダウンロード)ごとにリポジトリを作成することにしました。各リポジトリには、基本的なCRUDロジックが含まれています。
例えば。1 CommentRepositoryには、db.Insert(コメント、関係)を実行するSave(コメントコメント、オブジェクト関係)があります。ここで、関係はPostCommentまたはDownloadCommentです。
例えば。2 PostRepositoryには、POSTへの挿入を実行するSave(Post p)があります。
リポジトリのインターフェースが異なり、ポリモーフィッククエリを実行できないため、このソリューションについてはよくわかりません。
DALを改善するためのアドバイスを教えてください。
ご清聴ありがとうございました。