Задать вопрос
@lucky4

Как сохранить записи отсортированные в бд?

Привет! Меня интересует, как можно отсортированный список засунуть в таблицу бд?
Продебажил код - в переменную saveThis => записи отсортированы по полю, но после хранения в бд - все хаотично
var saveThis = request.SomeField.Select(r => new Table2Db
                        {
...
                        }).OrderBy(x => x.FieldIntNumber).ToList();

                        ctx.Table2Db.AddRange(errorDbs);

//manipulation with another Table1
....
ctx.SaveChanges()


***Переменная saveThis работает с таблицей2, после нее идут присвоения определенных параметров для таблицы1. Они находятся в одном контексте.
  • Вопрос задан
  • 203 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
Большинство СУБД не гарантируют порядок, в котором будут лежать записи при запросе без сортировки.

Так что если тебе нужен какой-то определённый порядок - используй ORDER BY.
Если у тебя там какая-то сложная сортировка - при вставке добавляй порядковый номер и сортируйся по нему.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@forced
Более того. Почти запрещается использовать порядок строк в бд. Т.е по нумерации. Доступ производится по ключу или предикату. Если нужно хранить именно отсортированный список - в кеш.
Ответ написан
Комментировать
@oleg_ods
Если нужно часто вытаскивать из БД сущности отсортированные по какому-то конкретному полю или набору полей, то возможно для повышения производительности, стоит задуматься о добавлении индекса на это поле/набор полей.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы