Сохраняет ли структура сущности порядок при вставке в базу данных? - PullRequest
1 голос
/ 18 мая 2009

Мы планируем использовать столбцы идентификаторов в нашей базе данных сервера SQL. В настоящее время мы используем направляющие для генерации уникальных идентификаторов, но выясняется, что порядок важен, поэтому мы рассматриваем переход к идентификации columsn.

Поскольку порядок важен, мы хотим убедиться, что порядок, в котором мы добавляем объекты в контекст сущности, также является порядком, в котором они вставляются в базу данных. Это актуально, поскольку сервер sql будет генерировать значения для столбца идентификаторов.

Гарантируется ли это структурой сущностей? Если нет, то каково эффективное решение для создания ваших собственных уникальных целочисленных идентификаторов для базы данных, которая обновляется из разных процессов.

Ответы [ 2 ]

1 голос
/ 18 мая 2009

Я просто догадываюсь здесь (хотя это должно быть довольно легко проверить), но я не думаю, что EF может гарантировать заказ. Я вполне уверен, что внутренняя структура основана на типе IEnumerable, возможно, List, который просто перечисляется во время вставки, и, насколько я знаю, перечисление не гарантируется, что каждый раз будет в том же порядке.

Вместо этого я бы добавил специальный столбец "порядок сортировки" в таблицу базы данных и принял бы его там.

1 голос
/ 18 мая 2009

Я бы не стал полагаться на порядок вставки, поскольку порядок ваших записей вернулся. Конечно, это будет работать большую часть времени, но что, если вам когда-нибудь понадобится вставить строку куда-нибудь? Я бы сказал, что лучше всего добавить порядковый столбец и активно генерировать порядковые номера для каждой строки, так как вы хотите, чтобы они были возвращены.

...