Я работаю над проектом ASP.NET MVC. В проекте у меня есть уровень обслуживания, который принимает DTO для операций CRUD. Когда мне нужно проверить бизнес-логику, должен ли валидатор принимать DTO, модели сущностей или что-то еще?
Например:
public class ProductService: IProductService
{
public ValidationResult CreateProduct(ProductDTO productDto)
{
//call productValidator.Validate(productDto) on the DTO here?
Product productEntityModel = mapper.Map<Product>(productDto);
//or, call productValidator.Validate(productEntityModel) on the Entity model here?
if(validationResult.Valid)
{
_dbContext.Products.Add(productEntityModel);
_dbContext.SaveChanges();
}
return validationResult
}
}
Некоторые мысли:
- Я видел в Интернете некоторые разговоры о создании POCO, который может иметь логику проверки (вместо использования службы проверки) и даже другую бизнес-логику внутри нее. В этом есть смысл, но это еще одно «представление» продукта, которым нужно управлять и поддерживать.
- Проверка на соответствие DTO может показаться немного более разумной, поскольку это то, что вызывающий абонент отправляет в службу?
Спасибо за помощь!!
List<History> ListHistory(int userId, string specialString)
? - person Ozgur   schedule 25.01.2018