3

我正在使用 KendoUI 网格并使用它的 ToDataSourceResult 来过滤我的数据(如文档所建议的那样),但我担心性能影响。

根据我的理解,以下建议的代码将所有记录从数据库中获取到内存中,并执行 ToDataSourceResult 扩展方法来过滤内存中的记录(LINQ fluent api 概念)。如果我有很多记录,这会对性能产生很大影响吗?

我想预先使用“where”子句查询数据库会有更好的性能......请告知。

这是文档中建议的内容

var countries = _database.Countries.GetAll();
return Json(countries.ToDataSourceResult(request, record => new
{
     record.Id,
     record.Name,
     record.Currency,
     record.TimeZone
}));

这是不使用 ToDataSource 过滤器的其他选项

var selectedCountries = _database.Countries.GetCountryStartWith("m")
4

1 回答 1

6

这取决于您的GetAll方法返回什么。如果它IQueryable启用 LINQ 的提供程序(实体框架、Linq to SQL 或其他任何东西)返回,所有操作都将在数据库级别(不在内存中)执行。如果它返回所有记录 - 那么即使在使用 ToDataSourceResult 之前你也会遇到问题。

于 2013-01-04T08:16:40.173 回答