Когда я создаю миграцию в своем приложении asp.net core 3.1 с помощью efcore, он работает нормально.
dotnet-ef migrations add Dev001 --project ..\Infrastructure\LetzIt.SqlServerDbService\LetzIt.SqlServerDbService.csproj --startup-project .\LetzIt.WebApi\LetzIt.WebApi.csproj
Если я просто добавлю новый класс (объект) Домена и настрою в моем конструкторе конфигурации модели и выполню команду:
dotnet-ef migrations add Dev002 --project ..\Infrastructure\LetzIt.SqlServerDbService\LetzIt.SqlServerDbService.csproj --startup-project .\LetzIt.WebApi\LetzIt.WebApi.csproj
Вывод дает мне эту ошибку:
ps: извините за изображение, но ошибка здесь была слишком уродливой, чтобы ее можно было понять. Основные направления:
System.ArgumentException: хотя бы один объект должен реализовывать IComparable.
а также
Не удалось сравнить два элемента в массиве.
Я много искал об этом, и мне ничего не показалось. Я сам не использую СОРТИРОВКУ. В моем коде больше нет OrderBy.
Вот пример конфигурации сущности:
internal sealed class RoleConfiguration : IEntityTypeConfiguration<Role>
{
public void Configure(EntityTypeBuilder<Role> builder)
{
builder.ToTable("Role");
BuildIndexes(builder);
BuildProperties(builder);
//TableSeed(builder);
}
private void BuildIndexes(EntityTypeBuilder<Role> builder)
{
builder.HasKey(m => m.Id);
builder.HasIndex(m => m.Name).IsUnique();
}
private void BuildProperties(EntityTypeBuilder<Role> builder)
{
builder.Property(m => m.Id)
.HasConversion(p => p.ToGuid(), p => new RoleId(p))
.IsRequired();
builder.Property(p => p.Name)
.HasConversion(p => p.ToString(), p => new RoleName(p))
.HasMaxLength(60);
}
private void TableSeed(EntityTypeBuilder<Role> builder)
{
builder.HasData(
new Role(RoleIdConstants.Admin, RoleNameConstants.Admin),
new Role(RoleIdConstants.Manager, RoleNameConstants.Manager));
}
}
Каждое отдельное свойство моих сущностей - это ValueObjects, поэтому я использую метод HasConversion.
Опять же, первая миграция работает нормально. Если я удалю свои миграции сейчас (после создания нового объекта) и снова создаю миграцию Dev001, ЭТО РАБОТАЕТ !!
Просто не получается, если я попробую поставить 2 миграции подряд.
Заранее спасибо, ребята.
Дополнительные технические подробности
- Версия EF Core: 3.1.5
- Поставщик базы данных: Sql Server
- Целевая платформа: ASP.NET Core 3.1
- Операционная система: Windows 10
- IDE: Visual Studio 2019 16.3