DAAB тесно связан со старым стилем доступа к базе данных (например, DataSets), в то время как современные ORM, такие как Linq, больше относятся к строго типизированным объектам, сгенерированным из схемы базы данных.
Я бы предложил только использовать DAABесли вам нужна нейтральность базы данных (IIRC хорошо подходит для использования с различными типами СУБД) и если вы хотите избежать инструментов, которые сильно зависят от магии времени компиляции.
ORM обычно довольно хороши в предоставлении ценностив виде простоты использования и поддержки инструмента.Однако они часто сталкиваются с «несоответствием объектно-реляционного импеданса», когда объекты выглядят и ведут себя как стандартные объекты на поверхности, но к ним предъявляются далеко идущие требования, поскольку они абстрагируют СУБД, которая не являетсядействительно совместим с объектно-ориентированными вычислениями.Ваш код должен «знать», как их использовать, иначе он может столкнуться с ловушками, которые вы не можете поймать во время компиляции.
Лично я бы избегал DAAB.Помимо нескольких ярких примеров (Unity!) EL довольно тяжеловесен и требует значительного объема работы для понимания и правильного использования.Это часто гусеничный молоток на гусеничном ходу, где должно работать зубило.Большинство ORM чертовски хороши, за исключением недостатков.Linq to Sql тверд, и EF4 добирается туда.Существуют также альтернативы с открытым исходным кодом, такие как nHibernate, которые также обеспечивают хорошее значение для кривой обучения.
Если бы я завтра начал новый проект, я бы использовал EF4-первые биты кода которые были выпущены недавно.Я думаю, что это главным образом потому, что я обжорство для наказания;EF4 был боль в моей заднице ...