Какое правильное использование сущностей и DTO при выполнении действий с базой данных? Мое мышление заключается в том, что лучше всего использовать DTO при чтении из базы данных и сущностей при создании/обновлении базы данных. В качестве небольшого примера рассмотрим Teh следующее:Использование сущностей и DTO при выполнении чтения и создания/обновления в базе данных
книги класса
public class Book/Entity
{
public int Id {get; set;}
public string Title {get; set;}
public int AuthorId {get; set;}
public Author Author {get; set;}
}
Автор Класс/Entity
public class Author
{
public int Id {get; set;}
public string Name {get; set;}
public int BookId {get; set;}
public Book Book {get; set;}
}
BookAuthorDto Класс
public class BookAuthorDto
{
public string Title {get; set;}
public string Name {get; set;}
}
Теперь, скажем, у нас есть WebAPI Контроллер книги.
public class BookController : ApiController
{
public IHttpActionResult GetBook(int id)
{
var BADto = context.Book.Where(book => book.ID == id)
.Select(book => new BookAuthorDto
{
Title = book.Title,
Name = book.Author.Name
});
return Ok<BookAuthorDto>(BADto);
}
public IHttpActionResult PostBookEntity(Book book)
{
// Code for saving book to DB
}
public IHttpActionResult PostBookDto(BookAuthorDto BADto)
{
// Code for creating entities from DTO
// Code for saving the created entities to Database
}
}
Какой метод считается более «правильным» методом PostBookEntity или методом PostBookDto?