EF4 is still missing pretty major components. However, why are you waiting for the perfect product? It's never going to be around. EF4 is quite useful even if it has a few rough edges.
You can use SQL and EF4 side-by-side, so if you happen to run into a scenario where EF4 makes inefficient code or simply doesn't support something, you can always use plain old ADO.NET. The entity framework actually supports constructing entities from DataRow
s, so you can fairly easily plug the results of such a exceptional SQL query back into your normal program flow. Where EF4 shines is in the more normal scenarios where type-safety & intellisense come into play.
Using the entity framework does entail a bit of a learning curve, and the earlier you start, the better. Despite the fact that EF4 isn't quite there yet (in my opinion, anyhow), I'd say: go for it! Use it for a few small corners of your app to get a feel for it.
You can construct an entity connection over an existing (unopened) SqlConnection
which is opened by the EntityConnection
, and using TransactionScope
then permits you to share a single non-distributed transaction between EF and ADO. Taken together, that means you can use small bits of the EF as drop-in replacements for normal ADO queries, transactions and all, as part of the same connection (i.e. without extra overhead from the server's perspective).