The biggest problem that arises between them is not the independence of the database, but that the usage pattern is fundamentally different. The data access unit (DAAB) is primarily a convenient wrapper around ADO.NET. This makes it easier / less annoying to call stored procedures, but you are still dealing with datasets or data readers. This does not actually affect how you interact with the database, it just makes it less annoying.
Entity Framework, on the other hand, deals with data modeling and object-relational mapping. It works at a higher level than DAAB; You write your code in terms of your objects, not using a DataSet or DataReaders. It automates the "materialization" of objects from the database, so you do not need to write this code, maintain relationships between them, etc. This is a much more fully functional, but completely different way to work with the database.
You need to think about whether you want to go first to the data access ORM style. From there, you can decide whether EF or one of many other ORMs in the .NET space is suitable.
There are many providers for EF (see Devart's answer for a list), but they are all external / optional. The only one in the box for Sql Server. Although I will add that DAAB does not actually completely overlap “database independence” - if you have any actual SQL in your DAAB calls, this will not help you with differences in SQL dialects. EF will be.
Chris tavares
source share