2011-07-28 8 views
0

フォーク、リポジトリパターンの利点

私は私の上司にリポジトリパターンの利点をどのように納得させることができるかについて熟考しています。特に次の問題に遭遇した後

ここここで上記リポジトリ関数の呼び出し

Icecream ce = qRepository.FindWhere(
        (q) => 
        { 
         return q.Id == 10; 
        } 
       ).FirstOrDefault<Icecream>(); 

ジレンマは、データベースからすべてのアイスクリーム(複数可)の前にメモリにロードされることであるだ

public IEnumerable<Icecream> FindWhere(Func<Icecream, bool> predicate) 
     { 
      return (from item in nhibernateSession.Linq<Icecream>() select item).AsQueryable<Icecream>()    
       .Where(predicate)         
       .OrderByDescending(c => c.Id).ToList(); 
     } 

アイスクリームリポジトリ内の方法です「述語」が適用されます。少なくとも、それは私が生成されたSQLから推測したものです。そしてそれは大きな「NO、NO」です。

私は、上記の性質を示すリポジトリパターンが追求する価値があることを誰かに納得させることができますか?上記の問題を回避する回避策はありますか?

おかげ休眠

答えて

0

リポジトリパターンは、IOCコンテナのいずれかのタイプを想定していません。フラットファイルからメモリリスト、保存されたprocsまでの永続化メカニズムでパターンを達成できます。問題はIOCコンテナまたはLINQにあります。