Я только что добавил несколько новых моделей в свое приложение .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 месяца назад), он сохранил свой порядок, и я не думаю, что с тех пор что-то сделал для него.