我已经使用代码优先方法建立了一个实体框架项目: 链接到代码优先方法
我添加了一种通过插入函数来访问存储库的方法:
仓库接口:
IQueryable<T> GetMany(Func<T, bool> where);
EntityRepositoryBase 方法:
public virtual IQueryable<T> GetMany(Func<T, bool> where)
{
return dbset.Where(where).AsQueryable();
}
我如何访问它的示例:
genericRepositoryName.GetStuffInHere(x => x.Name== "Billy");
但是,执行此操作时,它会加载整个表并过滤数据。正如您可以想象的那样,这需要很长时间。我有一个使用 .Find() 的 ByID 方法,它正确执行查询并以毫秒为单位获取记录。我完全不知道为什么会发生这种情况——或者我做错了什么。有没有更好的方法来获取一个字段的所有记录,比如说,包含一串“Hello”。当前进程需要大约 5-10 秒才能取回记录。