какой-нибудь сервис, с методом Model GetTheModelById(id) , который обращается к бд единожды. И другой метод, который использует первый, но в больших кол-вах. А-ля
IEnumerable<Model> GetModelsByIds(ids)
{
foreach (id in ids)
yield return GetTheModelById(id);
}
Очевидно, что при вызове второго метода, будет произведено множество запросов к бд, что как бы не выгодно. В таком случае, очевидно, во втором методе нужно реализовать целый, один, отдельный запрос к бд, расчитанный на множество результатов. Ну предположим, что это истина
Но. Не лучше ли тогда работать с моделями изначально как с IQueriable (даже когда результат заведомо только один), и в таком случае можно будет, как я понял, использовать методы, возвращающие IQueriable, использовать в других запросах, и тогда они будут преобразованы только в один скул запрос. Потому что, как я понял, только когда ты получаешь только один элемент, или когда вызываешь ToList, только тогда отправляется запрос, а до этого момента это лишь "конструктор" запроса, который постепенно расширяется вызовами других Linq-подобных методов
Насколько я прав?
Ну ты же с ними и работаешь как с iqueriable
Обсуждают сегодня