Когда я создаю миграцию в своем приложении 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, ЭТО РАБОТАЕТ !!
Это просто не сработает, если я попытаюсь разместить две миграции подряд.
Заранее спасибо, ребята.
Дополнительные технические данные
- Версия EF Core: 3.1.5
- Поставщик базы данных: Sql Сервер
- Целевая платформа: ASP. NET Core 3.1
- Операционная система: Windows 10
- IDE: Visual Studio 2019 16.3