我想将谓词参数传递给C#Asp.net中的通用存储库GetAll方法

时间:2014-05-27 00:30:11

标签: asp.net .net entity-framework entity-framework-5 repository-pattern

我想通过传递谓词来过滤我的GetAll Repository函数。我想检查一下,如果国家不是来自ajax请求,则不应过滤它并带来所有记录。 我想要的是什么,见图像 enter image description here

我是如何解决的
我已经通过编写自己的代码解决了这个问题,但我怀疑它会慢,因为它会首先带来所有记录。什么是完美的方式,我仍然感到困惑。

string country = Request["country"]+"";


           ICollection<Location> set = new LocationRepository().GetAll().ToList<Location>();

           if (country != "")
               set = set.Where(p => p.Country == country).ToList();

           List<Location> list =  set.OrderByDescending(p=>p.Id).Take(10).ToList();

1 个答案:

答案 0 :(得分:0)

我猜它会像以下一样

public void GetAll(Expression<Func<Location, bool>> exp)
{
....
}