Как изменить порядок списка элементов с помощью столбца «Заказ» и обновить список с помощью EF Core?C#

Место общения программистов C#
Ответить
Гость
 Как изменить порядок списка элементов с помощью столбца «Заказ» и обновить список с помощью EF Core?

Сообщение Гость »


У меня есть список подобных объектов в базе данных:

List сущности = новый List { новый YourEntity {Id = 1, Name = "Товар A", OrderColumn = 1}, новый YourEntity {Id = 2, Name = "Товар B", OrderColumn = 2}, новый YourEntity {Id = 3, Name = "Товар C", OrderColumn = 3}, // Добавляем дополнительные элементы по мере необходимости }; Я хочу, чтобы мой пользователь мог изменить значение OrderColumn для упорядочивания списка и сохранить новый порядок в базе данных.

Как лучше всего это сделать с помощью ядра сущности framework?

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

Мой метод:

публичный статический список UpdateOrder (сущности List, Func getOrder, Action setOrder, int itemId, int newOrder) { var itemToMove =entities.SingleOrDefault(e => getOrder(e) == itemId); если (itemToMove!= ноль) { // Определяем текущий порядок элемента int currentOrder = getOrder(itemToMove); // Обновляем порядок элемента setOrder (itemToMove, newOrder); // Соответствующим образом обновляем порядок других элементов foreach (вар объект в сущностях) { intentityOrder = getOrder(entity); if (!EqualityComparer.Default.Equals(entity, itemToMove)) { if (newOrder < currentOrder &&entityOrder >= newOrder &&entityOrder currentOrder &&entityOrder currentOrder) { setOrder(entity,entityOrder--); } } } // Изменяем порядок всех элементов на основе новых значений порядка и возвращаем обновленный список сущности = сущности.OrderBy(getOrder).ToList(); } возвращать сущности; } Я использую этот метод следующим образом:

entities = OrderItemsHelper.UpdateOrder(entities, e => e.Id, (e, order) => e.OrderColumn = order, item.Id, newOrder); Мой вопрос: как изменить порядок строк и обновить другую запись?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»