У меня есть метод
GetPostsByCategory
Я могу сделать это подобно подходу А, чтобы повторно использовать то, что у меня есть
A
public IEnumerable<Post> GetPostsByApartmentId(
string apartmentId,
int pageIndex,
int pageSize,
int max = 50)
{
var itemsPerPage = Math.Max(pageSize, max);
return _context.Post
.Where(p => p.ApartmentId == apartmentId && !p.Disabled)
.Skip((pageIndex - 1) * itemsPerPage)
.Take(itemsPerPage);
}
public IEnumerable<Post> GetPostsByCategory(
string categoryId,
string apartmentId,
int pageIndex,
int pageSize,
int max = 50)
{
return GetPostsByApartmentId(apartmentId, pageIndex, pageSize, max)
.Where(p => p.CategoryId == categoryId);
}
Но я обеспокоен производительностью для A, так что вот подход B
public IEnumerable<Post> GetPostsByCategory(
string categoryId,
string apartmentId,
int pageIndex,
int pageSize,
int max)
{
var itemsPerPage = Math.Max(pageSize, max);
return _context.Post
.Where(p => p.ApartmentId == apartmentId && !p.Disabled && p.CategoryId == categoryId)
.Skip((pageIndex - 1) * itemsPerPage)
.Take(itemsPerPage);
}
Однако я помнюЯ читал некоторые статьи, в которых говорилось: лямбда-выражение (или LINQ, не помню) на самом деле не выполняет запрос, оно просто создает запрос и выполняется только тогда, когда это необходимо или путем вызова чего-то вроде ToList ().Так что, если это так, то и A, и B должны быть одинаковыми.Кто-нибудь может подтвердить это?