цикл заполнять коллекцию данными из бд с помощью ef, то ef будет посылать несколько разных запросов к бд, или каким-то мудрённым способом вместит его в один?
Это будет один запрос, постой обычный запрос.
Смотря что тебе надо сделать) у еф много различных плюшек имеется)
После добавления финализатора в пайп это один запрос. Точнее, не менее одного (при использовании SplitQuery параметра). Т.о. в цикле будут генериться запросы каждую итерацию цикла, как я понимаю/помню.
Я не очень понял, что за финализатор в пайп?
У меня есть массив с id, я хочу по циклу получить коллекцию сущностей с айди из этого массива
await myDbContext.MyTable.Where(e => myIdArray.Contains(e.Id)).ToListAsync() чем не устраивает?
Боже, не додумался до этого, спасибо большое!
лучше Join, а потом Where. Если EF не сможет этого конвертировать в SQL, то лучше SQL
Здесь перебор всех элементов будет, это очень долго
Зачем where при join (inner join), покрывающем запрос?... Т.е, в общем случае, contains ("in" в синтаксисе sql) предпочтительней использования inner join'а (другое дело, что план выполнения, с высокой степенью вероятности, будет идентичным - но это зависит от многих факторов типа уникальности позиций, объема и тд)
А если без tolistasync попробовать? Быстрее будет?
Что будет быстрее?
Обсуждают сегодня