Описание
Поскольку я пытаюсь принять Чистая архитектура , я хочу отойти от Аннотации данных и использовать Свободный API который, лично я начал отдавать предпочтение гораздо большему.
Однако я не слишком квалифицирован в этом способе реализации вещей.
Range Annotation (Старый подход)
Ранее я использовал аннотацию Range
для указания min и max для числовых свойств, например:
public class Engine
{
...
[Range(0, 10000)]
public int Size { get; set; }
[Display(Name = "Horse power")]
[Range(0, 1000)]
public int HorsePower { get; set; }
[Display(Name = "Top speed")]
[Range(0, 500)]
public int? TopSpeed { get; set; }
...
}
Класс конфигурации(Более чистый подход)
Теперь я пытаюсь написать проверочный код в классе Configuration , связанном с сущностью Engine
.
Сущность класс:
public class Engine
{
public int EngineId { get; set; }
public int Size { get; set; }
public int HorsePower { get; set; }
public int? TopSpeed { get; set; }
public int FuelId { get; set; }
public int TransmissionId { get; set; }
}
Это то, что у меня сейчас есть для класса конфигурации :
using Carsurfer.Domain.Entities;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace Carsurfer.Persistence.Configurations
{
public class EngineConfiguration : IEntityTypeConfiguration<Engine>
{
public void Configure(EntityTypeBuilder<Engine> builder)
{
builder.Property(engine => engine.Size);
}
}
}
Вопросы
Есть ли что-то встроенное в Entity Framework Core для этого?
Должен ли я реализовать интерфейс IValidatableObject
omehow?
Должен ли класс Configuration быть связан с проверкой его сущности?