Как асинхронно заполнить свойство навигации, используемое для фильтрации при пейджинге?C#

Место общения программистов C#
Ответить
Anonymous
 Как асинхронно заполнить свойство навигации, используемое для фильтрации при пейджинге?

Сообщение Anonymous »

Изучая EF Core, я передумал, как получить список продуктов с дополнительной информацией (здесь символический код) — см. слабо связанный (заброшенный подход) в разделе Как условно составить EF из частей? .
Базовый набор свойств, связанных с элементом продукта, должен быть дополнен свойствами навигации с подробностями, связанными с конкретным клиентом (может быть нулевым), количеством в магазинах (может быть нулевым) и действиями (список кодов действий, возможно, пустой список или ноль).
Свойства навигации «Клиент» и «магазин» могут быть заполнены только для возвращаемой страницы (скажем, 20 элементов из, скажем, 20 элементов). 5000).
Однако действия могут использоваться сначала для фильтрации только подмножества продуктов, а также могут использоваться для заказа (в том смысле, что сначала показывать продукты, предлагаемые в каком-либо действии - думайте в терминах "новинка", "распродажа", "11+1бесплатно"). Следовательно, его, вероятно, необходимо получить другим способом (чем клиент или магазин). Фильтрацию и упорядочивание необходимо выполнить до .Skip(skipResults).Take(pageSize), сведения о клиенте и магазине можно будет получить позже, после того, как элементы страницы будут найдены (я не знаю, какие методы EF Core транслируются в какую конструкцию SQL, чтобы сделать их наиболее эффективными).

Код: Выделить всё

public async Task GetAllAsync(  // (0)
string? customerCode,
string? filterAction,
int pageNumber = 1, int pageSize = 10)
{
DateTime now = DateTime.Now;  // for determining the valid actions

var products2 = dbContext.Products    // (1) public DbSet Products { get; set; }
...like: ProductCode, ProductName, CatalogPrice ...

customer = ... dbContext.CustomerProducts // (2) public DbSet
...customer-related, like: CustomerPrice...

storage = ... available quantity on several stores...

actions = dbContext.ProductAttributes      // (3) list of ProductAttribute
.Where(x => x.ValidFrom 

Подробнее здесь: [url]https://stackoverflow.com/questions/79832646/how-to-async-fill-the-navigation-property-used-for-filtering-when-paging[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»