Как отфильтровать GET-запрос веб-приложения Blazor-Server для небольшого количества записей из таблицы в миллион строкC#

Место общения программистов C#
Anonymous
Как отфильтровать GET-запрос веб-приложения Blazor-Server для небольшого количества записей из таблицы в миллион строк

Сообщение Anonymous »

У меня есть серверное веб-приложение C# Blazor с Entity Framework Core + база данных SQL Server. Мне нужно несколько фильтров выборки/GET, и я хочу знать, как лучше всего их закодировать на C# и T-SQL. Таблица базы данных может содержать несколько миллионов строк. Когда мы запрашиваем отфильтрованные данные из этой таблицы, мы ожидаем, что будет возвращено не более 500 строк. Я ищу лучший/самый быстрый способ вернуть данные на страницу браузера пользователя.
В настоящее время я закодировал GET из хранимых процедур с использованием C#. . Этот пример взят из хранимой процедуры:

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

returnValue = _dbContext.Table1.FromSqlInterpolated(sqlCommand).ToList();
Я также написал «запрос», например... где GetAllCustomers() возвращает данные из следующего вызова EF Core:

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

List GetAllCustomers = await _dbContext.Table1!.ToListAsync();
за которым следует «запрос» для отфильтрованного результата.

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

// Filter query for the customer.
IEnumerable getQuery =
from recs in await this.GetAllCustomers()
where (recs.UID_CUSTOMER == pUID_CUSTOMER)
select recs;

// Fetch the data
return getQuery.ToList();
Я спрашиваю вас: лучше ли использовать хранимые процедуры из базы данных для «фильтрации» из многомиллионной таблицы базы данных, и код Blazor C# будет таким же простым, как:< /p>

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

// Initialize.
string storedProcName = "dbo.uspGetTable1ForAnyDefects";
string param1 = $"@CustomerUID = {pUID_CUSTOMER}";
string param2 = $"@INT_SEVERITY = {pSEVERITY}";

FormattableString uspCommand = $"EXEC {storedProcName} {param1}, {param2}";

returnValue = _dbContext.TMvwMOTripList.FromSqlInterpolated(command).ToList();
По сути, вызов хранимых процедур — это «самый быстрый» способ получения данных с помощью веб-приложения сервера Blazor, написанного с помощью Entity Framework Core.
Ваши комментарии добро пожаловать. Спасибо... Джон Д.

Подробнее здесь: https://stackoverflow.com/questions/788 ... cords-from

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