Я изучаю APB, и я анализирую и расширяю код из учебника Введение, часть 2 (ASP.NET Core, EF). https://aspnetboilerplate.com/Pages/Documents/Articles/Introduction-With-AspNet-Core-And-Entity-Framework-Core-Part-2/index.html
Сначала я представил новую сущность - Team. Команда - это группа людей. Я добавил внешний ключ в сущность Person.
[Table("AppPersons")]
public class Person : AuditedEntity<Guid>
{
public const int MaxNameLength = 32;
[Required]
[StringLength(MaxNameLength)]
public string Name { get; set; }
public Guid TeamId { get; set; }
[ForeignKey(nameof(TeamId))]
public Team Team { get; set; }
}
Я хотел бы создать ApplicationService, который будет возвращать список людей для конкретной команды с количеством назначенных задач. Я не знаю, как мне объединить инфраструктуру Repository и Mapping для достижения этой цели.
public class FooAppService : ApplicationService, IFooAppService
{
private readonly IRepository<Task, Guid> _taskRepository;
public FooAppService(IRepository<Task, Guid> taskRepository)
{
_taskRepository = taskRepository;
}
public ListResultDto<PersonWithNumberOfTasksAssignedDto> FooMethod(Guid teamId)
{
...
}
}
Я также не знаю, как лучше проектировать объект DTO. Нужен ли новый объект DTO для этого метода службы или мне следует использовать кортеж? У меня есть PersonDto
объект, который используется для добавления / редактирования Person. Должен ли я просто обернуть это свойство count?
public class PersonWithNumberOfTasksAssignedDto : EntityDto<Guid>
{
public PersonDto Person { get; set; }
public int NumberOfAssignedTasks { get; set; }
}