ASP.NET MVCとC#を使用して複数のデータベースレイヤをサポートできるレポジトリのスケルトンデザインはどうでしょうか?私は、LINQ to SQLとNHibernateの両方をサポートしていれば、デザインがどのように見えるかを見たいと思っています。どのように私のデータベースオブジェクトを作成し、私のBLL層のメソッドを呼び出すでしょうか?複数のデータアクセス戦略を処理するリポジトリをどのように設計できますか?
1
A
答えて
8
repository patternはおそらくこのための最適な解決策です。リポジトリごとにインターフェイスを定義し、Linq2SqlおよびNHibernate実装用の具体的なリポジトリを作成します。
public interface ICustomerRepository
{
Customer GetCustomer(int id);
}
public class NhibCustomerRepository : ICustomerRepository
{
public Customer GetCustomer(int id)
{
// NHibernate implementation
}
}
public class LtsCustomerRepository : ICustomerRepository
{
public Customer GetCustomer(int id)
{
// Linq2Sql implementation
}
}
依存性注入フレームワーク、などNinjectは、それが簡単に動的な実装を切り替えることができます。現在のセッションをリポジトリに渡して、同じ作業単位に参加するようにするには、NHibernateで追加の依存関係注入を行う必要があります。
0
関連する問題
- 1. MOSS2007のセッションタイムアウトを処理するベストプラクティス/戦略は何ですか?
- 2. 例外処理戦略 - リポジトリから例外をキャッチしてWebApiコントローラに渡す
- 3. AndroidHttpClient。 KeepAlive戦略をどのように設定するのですか?
- 4. ツームストーン戦略は、どのように複数のページ
- 5. アンドロイドでスタイラスファースト戦略でタッチイベントを処理するにはどうすればよいですか?
- 6. サービスオブジェクト、トランザクションスクリプト、および戦略設計パターンは同じですか?
- 7. ユニットテストでDateTime.Nowを処理するための戦略
- 8. 私の例外処理の戦略を批判します
- 9. UIの例外処理戦略
- 10. 処理中の複数のNServiceBusプロジェクトをどのように処理できますか?
- 11. 複数のファイル処理に最適なI/O戦略を選択するにはどうすればよいですか?
- 12. アーキテクチャ設計の文書化戦略
- 13. 手順設計の文書化戦略
- 14. C#戦略パターン設計の問題
- 15. プリペアドステートメントで複数のクエリをどのように処理するのですか?
- 16. Pythonの__name__の検索プロパティ戦略は、通常の戦略とどのように違うのですか?
- 17. データ処理の小さな不一致に対処するためにどのようなプログラミングパターンや戦略を使用すべきですか?
- 18. ストリーム管理の重複レコードはどのように処理できますか?
- 19. これはPythonのAPI設計戦略ですか?
- 20. Rails 5:複数のタイムゾーンを持つレコードを保存するユーザーを処理するための戦略
- 21. XSLT 1.0予備処理戦略
- 22. makeClusterは接続エラー処理戦略を開けませんか?
- 23. JavascriptとC#にまたがるクラスライブラリの設計戦略
- 24. SQSからの複数のメッセージをどのように処理しますか?
- 25. 戦略パターンに関する設計上の問題
- 26. .NET戦略と共有リポジトリ
- 27. 不明なレポートを処理できるデータベースを設計するにはどうすればよいですか?
- 28. 複数のデータベースを持つデータアクセス層の設計
- 29. アダプターでwebview.canGoBack()をどのように処理できますか?
- 30. Akkaでスーパーバイザ戦略を理解する
私はあなたが設計し、あなたのソフトウェアを書くためにSOクレジットいる願っています。 – Welbog
@Welbog:彼が私のコンサルタント率を支払っている限り、私は彼が私に信用を与えるかどうか気にしません。 – Pesto