sqlite-net-pcl, где проблемы производительности - PullRequest
0 голосов
/ 01 февраля 2019

Вопрос в том, что делает компилятор / linq или sqlite-net-pcl под капотом со следующим фрагментом:

TableQuery<Foo> tr = connection.Table<Foo>()
          .Where(i => i.a > 5 && i.b < 5 && statusList.Contains(i.status));

В моем понимании, он выполняет первый запрос, как любой обычный sql / dbms дляпростые значения (a> 5 и b <5), но как работает функция содержит в этом случае.Пройдет ли он каждый результат и проверит его вручную, будет ли весь материал каким-то образом преобразован в sql-statment.Если Foo.status проиндексирован, будет ли этот индекс использоваться для более быстрого поиска.</p>

Некоторые другие ORM имеют специальный синтаксис или цепочку методов для выполнения чего-то подобного (см. Laravel, который предлагает метод where)

...