2016-10-28 1 views

答えて

1

これは非常に議論されているので、以下を「回答」と見なしてください。

EFのコンテキストは、DbSetsがリポジトリである作業ユニットです。これらは一緒になってデータベース上の抽象化を形成します。 SaveChangesメソッドは、各リポジトリに加えられたすべての変更をコミットします。

人々は、内部的にコンテキスト/ DbSetを使用するIRepositoryを作成するためにリポジトリパターンを使用する多くの例があります。しかし、これをすることによって、あなたは以下のとおりです。

  • は、あなたのインターフェースが実装

を隠しているので、あなたがこの追加の抽象化を作成した理由は、あなたができることであるEFの機能を失うこと

  • 抽象化の上に抽象化を作成します別のデータベース/ストレージと言って、何かのためにEFを交換してください。 しかし、ここにはyagniがあると思います。 SQLデータベースをターゲットとするプロジェクトを開始する場合、顧客がOracleに変わる可能性はどのようなものでしょうか?

    これが役に立ちます。

  • +0

    私の意見はあなたと同じです。そして、私はリポジトリがEF自体を覆い隠すだろうと思いますか? –

    関連する問題