Это очень полезно, когда вы хотите изолировать свой бизнес-код от вашей базы данных. В очень простых сроках DTO создаются путем выбора из базы данных, и изменения в DTO переводятся обратно в базу данных на уровне доступа к данным. В некоторых случаях вы даже можете добиться независимости от поставщика базы данных (по крайней мере, с деловой стороны вашего кода).
Общий недостаток - когда у вас есть очень специфический SQL для адресации сложных объединений, объединений и т. Д. Или для максимизации производительности. В этих случаях полезно использовать DAL для какого-то «обходного» метода, когда вы отправляете динамический sql или хранимую процедуру и получаете данные обратно.