Member 11011853 Ответов: 1

Привязка данных к строго типизированному выпадающему списку занимает больше времени в mvc5


Привет..
Я пытаюсь связать около 2 лакхов данных(ItemId,ItemCode) в строго типизированном выпадающем списке. Использование хранимой процедуры для извлечения данных из таблицы БД. В приложении используется entity frame для вызова хранимой процедуры.

public IEnumerable<OPS_GetATCCItems_Result> GetItemMaster_ATCC
       {
           get
           {
               EntityDataModel.StoredProcedures.MastersSPsEntities db = new MastersSPsEntities();
               ItemViewModel _ivm = new ItemViewModel();
               _ivm.getAtccItemMasterDtls_resultList = db.OPS_GetATCCItems().ToList();
               return _ivm.getAtccItemMasterDtls_resultList;
           }
       }


Выше функция выборки данных из БД.

@Html.DropDownListFor(m => Model.getItemRecmdDtls_result.ItemMasterId, new SelectList(Model.ddlContr.GetItemMaster_ATCC, "ItemMasterId", "LgcCode"), "Select",
                                                                      new { @id = "ddlItemCode", @style = "width:280px !important;", @class = "select2", @required = "Required", @title = "Item Code is required." })


Выше оператор для привязки данных к выпадающему списку.

Любая помощь будет оценена по достоинству.

Спасибо.

Что я уже пробовал:

Хранимая процедура занимает около 25 секунд для выполнения. Выпадающий список привязки потребляет больше времени.

1 Ответов

Рейтинг:
0

Richard Deeming

Загрузка двухсот тысяч элементов в список не является жизнеспособным вариантом. Помимо времени, которое потребуется для выполнения запроса и загрузки элементов, вы будете оказывать огромное давление на память сервера, а также на пропускную способность, память и время автономной работы клиента.

И это ничего не даст. Если бы пользователь мог смотреть на один элемент каждую секунду, ему потребовалось бы более 55 с половиной часов, чтобы прокрутить список, чтобы найти нужный элемент.

Основываясь на классе CSS, вы уже используете его Select2[^] чтобы позволить им искать в списке. Воспользуйся опция "удаленные данные" [^] загружать только те элементы, которые соответствуют тому, что ищет пользователь. При необходимости используйте опция разбиения на страницы[^] чтобы ограничить количество элементов, возвращаемых в одном ответе.