Сообщение Re[2]: DDD: фильтр по временной таблице в Репозиториях от 11.06.2024 10:59
Изменено 11.06.2024 11:00 ·
Re[2]: DDD: фильтр по временной таблице в Репозиториях
Здравствуйте, 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, который пусть сам обеспечивает согласованность и перформанс как может — через временные таблицы или ещё как.
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, который пусть сам обеспечивает согласованность и перформанс как может — через временные таблицы или ещё как.
Re[2]: DDD: фильтр по временной таблице в Репозиториях
Здравствуйте, 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, который пусть сам обеспечивает согласованность и перформанс как может — через временные таблицы или ещё как.
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, который пусть сам обеспечивает согласованность и перформанс как может — через временные таблицы или ещё как.