У меня есть таблица, которая служит очередью для внешнего процесса.Приложение должно разрешить изменение порядка очереди.Я создаю основное приложение asp.net, которое использует EF Core для взаимодействия с базой данных sql.Я использую код первый подход.Я добавил поле с именем QueueOrder.Я рассмотрел различные подходы, и, похоже, ничего не работает для этого варианта использования.
Один из подходов состоит в том, чтобы по умолчанию поле QueueOrder совпадало с полем Id.Идентификатор представляет собой целочисленную последовательность, которая увеличивается на 1 для каждой вставленной строки, поэтому она должна служить точной отправной точкой для порядка очередей.Затем, когда пользователь меняет порядок, я могу обновить это поле, поменяв местами значения QueueOrder.
Какой лучший способ добиться этого с помощью Entity Framework Code First?Я прочитал документы «Значения по умолчанию», «Сгенерированные значения», «Альтернативные ключи» и «Последовательности», и, похоже, ничего не подходит для моего варианта использования.EF не позволит мне добавить последовательность, потому что таблица уже существует.Я пытался использовать значение по умолчанию, но вы не можете использовать имена столбцов в этом.Вы можете использовать только константы и константные выражения.
Я не могу использовать альтернативный ключ, потому что EF не позволяет мне изменять ключи.По-видимому, я могу назначить поле как GeneratedValue, а затем использовать триггер, но я не вижу способа указать триггер с кодом в первую очередь.
modelBuilder.Entity<JobQueue>(b =>
{
b.Property(j => j.QueueOrder)
.HasDefaultValueSql("Id"); //This fails
});
Есть ли в коде первый поддерживаемый подход к этому?