У меня есть таблица базы данных, которая имеет целочисленный столбец SortOrder. В пользовательском интерфейсе для добавления и редактирования элементов таблицы у меня есть выпадающий список Integer, позволяющий пользователю выбирать, где в сортировщике они хотели бы, чтобы этот элемент отображался. Мой вопрос: скажем, список, {1,2,3,4,5, «последний»}, если пользователь выбирает номер aa, я хочу, чтобы это был атрибут SortOrder, а затем элемент с этим «SortOrder», в настоящее время будет набит один (+ = 1), а также предметы с более высоким «SortOrder», не затрагивая элементы с более низким «SortOrder». я в настоящее время есть общедоступный модуль «Утилиты» с помощью VB.NET и LinqЛучшая практика для нумерации элементов в списке? SQL или C#/VB.NET
Private _db Как Новый MyDataContext
Public Sub UpdateProductSortOrder(ByVal idx As Integer)
Dim products = (From p As Product In _db.Products _
Where p.SortOrder >= idx _
Select p).ToList()
For Each p As Product In products
p.SortOrder += 1
Next
_db.SubmitChanges()
End Sub
Это, кажется, работает нормально при добавлении элементов, как я делаю это
Protected Overrides Sub AddItem()
Dim sortOrder As Integer = Int32.Parse(Server.HtmlEncode(ddlNewSortOrder.SelectedValue))
If (sortOrder >= 1) Then
Utilities.UpdateProductSortOrder(sortOrder)
Else
sortOrder = Utilities.GetNextProductSortOrder()
End If
Dim dic As New System.Collections.Specialized.ListDictionary()
dic.Add("PROD_Description", Server.HtmlEncode(txtNewDescription.Text))
dic.Add("Abbrev", Server.HtmlEncode(txtNewAbbreviation.Text.ToUpper()))
dic.Add("SortOrder", sortOrder)
ProductsGridSource.Insert(dic)
End Sub
Но я получаю некоторые случайные ошибки при редактировании exisitng таких элементов как
Защищенные субпродуктыGridSource_Updating (ByVal отправитель как объект, по Val е Как System.Web.UI.WebControls.LinqDataSourceUpdateEventArgs) Dim SortOrder As Integer = DirectCast (e.NewObject, продукт) .SortOrder Utilities.UpdateProductSortOrder (SortOrder) End Sub
Есть ли более эффективна, может быть, Лучшая практика, как я должен это делать? Любые советы приветствуются.
Спасибо заранее, ~ ск в Сан-Диего
Мне нравится этот подход. Да, я вижу проблему с моей. Я изменяю значения, которые не нужно менять, просто добавляя 1 ко всему. Как я могу реализовать это эффективно с помощью Linq? – Hcabnettek