Здравствуйте, Sinclair, Вы писали:
S>Например, на linq: S>var tovarList = TovarRepository.GetList(filterCritery); // никакого обращения в базу ещё нет, просто построен запрос.
Как я понял, ему нужен и сам список товаров тоже.
S>var analogList = AnalogRepository.GetListByTovar(tovarList); // никакого обращения в базу ещё нет, просто построен запрос S>/// запрос устроен так, что при его исполнении в базу поедет что-то вроде select * from tovar where SELECT * FROM analogs WHERE analog.tovar_id IN (select * from tovar where ...)
Ему ещё нужно списки аналогов и упаковок, именно согласованные с этим данным списком товаров, т.е. ещё и целостность надо будет как-то обеспечивать.
S>[tt]SELECT * FROM analogs WHERE analog.tovar_id IN (4, 8, 15, 16, 23, 42)
А как оно сработает, скажем, для 100к товаров? Какая будет у этого произовительность гонять туда-сюда?
Так что я голосую за GetTovarWithAnalogAndPack, который пусть сам обеспечивает согласованность и перформанс как может — через временные таблицы или ещё как.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай