Это в node-modules/react-drag-sortable/lib/index.js
Это экспортируется со следующей строкой в конце файла:
exports.default = DragSortableList;
Вызов ToList()
возвратит подлинное List<T>
со всеми данными, что означает выбирать все данные.Не очень.
Вызов Count()
должен действительно представить SQL для проведения подсчета на стороне базы данных. Намного лучше.
Самый простой способ проверить это, однако, состоит в том, чтобы позволить войти в систему Ваш контекст данных (или независимо от того, что эквивалент для Вашего конкретного поставщика), и посмотрите то, какие запросы на самом деле отправляются.
Я не уверен, является ли это жесткое правило, но linq метод, который Вы добавляете к Iqueryable, будет добавлен в linq дерево выражений - если они не будут одним из методов, которые на самом деле заставляют дерево быть оцененным (как ToList и Единственные и т.д.). В случае LinqToSql Вы будете знать, не может ли он преобразовать что-то в SQL-оператор, потому что Вы получите исключение на этапе выполнения, заявляя, что метод не поддерживается.
например,
var something = dbContext.SomeTable
.Select(c => c.col1 == "foo")
.Distinct()
.ToList()
.Count()
В вышеупомянутом Выбор () и Отличный () включен в запрос SQL, переданный серверу, потому что они добавляются к Iqueryable. Количество () просто действует на список, который был возвращен запросом SQL. Таким образом, Вы не хотите делать это тот путь :-)
В Вашем случае количество () определенно будет быстрее, что Выбор (), потому что получающийся sql оператор действительно включит количество так сервер только, должен возвратить единственное число, а не список строк.