EF Core - Столбцы таблицы сортируются автоматически - PullRequest
0 голосов
/ 18 декабря 2018

Я только что добавил несколько новых моделей в свое приложение .NET Core, которое в настоящее время использует EF-миграцию с первым кодом.Предыдущие модели мигрировали нормально и в порядке свойств моей модели, но, похоже, сейчас все изменилось.Новые модели сортируются сначала по значениям ключа, а затем по алфавиту.

Вот пример ...

Мой класс ведения журнала:

[Table("Logs")]
public class LogEntry
{
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public string Id { get; set; }

    public LogEntryType Type { get; set; }

    [StringLength(4000)]
    public string Message { get; set; }

    [StringLength(4000)]
    public string StackTrace { get; set; }

    public DateTime LogTimeUtc { get; set; } = DateTime.UtcNow;
}

Я печатаю в консоли менеджера пакетовв VS 2017:

add-migration InitialCreate -Context LoggingContext

, и это создает это в построителе миграции:

migrationBuilder.CreateTable(
            name: "Logs",
            columns: table => new
            {
                Id = table.Column<string>(type: "nvarchar(450)", nullable: false),
                LogTimeUtc = table.Column<DateTime>(type: "datetime2", nullable: false),
                Message = table.Column<string>(type: "nvarchar(4000)", maxLength: 4000, nullable: true),
                StackTrace = table.Column<string>(type: "nvarchar(4000)", maxLength: 4000, nullable: true),
                Type = table.Column<int>(type: "int", nullable: false)
            },
            constraints: table =>
            {
                table.PrimaryKey("PK_Logs", x => x.Id);
            });

Заметили, что порядок свойств изменился?Затем этот же порядок применяется к базе данных при использовании:

update-database -Context LoggingContext

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

1 Ответ

0 голосов
/ 18 декабря 2018

Это происходит в 2.0, EF Core 2.1 или после обновления обновлений, чтобы изначально генерировать столбцы для таблиц в том же порядке, в каком свойства объявлены в классах. См. здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...