0

Entity Framework、汎用リポジトリ、およびサービス レイヤーを備えた SQL Server 2012 を使用しています。常に EF と SQL Server を使用するつもりです。

これは正常に機能していますが、EF の組み込みリポジトリの上に汎用リポジトリを実際に必要としないことが示唆されました。

汎用リポジトリを使用する利点があるかどうか誰か教えてもらえますか? 過去の経験から、意見という言葉が言及されるとすぐに質問が人々によって閉じられるので、私はどちらか一方についての意見を探していません:-(

4

3 に答える 3

2

あなたが提案していることは、ORM の世界では第 2 レベルのキャッシュとしても知られています。パフォーマンスを大幅に向上させることができますが、正しく実装するのはかなり困難です。長所と短所を探り、実装の詳細について説明するいくつかのリソースを次に示します。

http://msdn.microsoft.com/en-us/magazine/hh394143.aspx
http://queue.acm.org/detail.cfm?id=1394141

于 2013-07-06T06:21:27.257 に答える
1

汎用リポジトリ パターンなどのデータ パターンをデータ層に追加すると、抽象化レベルが提供され、コードをテスト可能にするなどの利点があります。

余談ですが、GR との結合を検討する必要がある別のデータ パターンは、Unit of Work パターンです。これにより、トランザクションをグループ化し、変更のコミットやロールバックなどの論理操作を実行できます。

個人的には、このようなパターンを使用してもパフォーマンスが向上することはありませんが、開発が容易になり、コードの保守が容易になることは確かです。これはプラスだと思います。

作業単位パターンへのリンク

于 2013-07-06T08:39:22.220 に答える
0

リポジトリ パターンは、ドメインの集計を永続化および取得するためのものです (集計は、エンティティと値オブジェクト (DDDesign) を含むものです)。エンティティ フレームワークは、デフォルトで UnitOfWork パターン (context.SaveChanges()) をサポートしていますが、集計とエンティティを取得して永続化するには、リポジトリ パターンが必要です。ほとんどの人は UnitofWork を使用し、データ アクセス レイヤーで CRUD 操作も処理しますが、前述したように、エンティティ フレームワークは unitofwork をサポートしており、後でリポジトリでのみリポジトリ パターンのみを使用できます。

このブログ記事を参照してください。

http://ehsanghanbari.com/Post/44/does-it-cause-any-kind-of-performance-issue-using-a-base-class-in-layer-supertype-pattern

http://ehsanghanbari.com/Post/8/repository-pattern-practice-in-data-access-layer-via-entity-framework

http://ehsanghanbari.com/Post/23/layer-supertype-pattern-with-example-in-c

于 2014-02-03T20:50:28.927 に答える