Как изменить порядок списка элементов с помощью столбца «Заказ» и обновить список с помощью EF Core? ⇐ 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); Мой вопрос: как изменить порядок строк и обновить другую запись?
У меня есть список подобных объектов в базе данных:
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); Мой вопрос: как изменить порядок строк и обновить другую запись?
Мобильная версия