Is is time to use Entity Framework 4.0 now?
We are working on a quite big project written in WPF and WCF. The structure of the database contains about 60 tables, lots of stored procedures, views and some functions. We are not using any ORM at the moment. Some time ago when the first version of EF was release we did not go with it because of the known reasons:

 - one threaded only (it uses only one processor core)
 - no support for lazy loading
 - no support for POCO
 - horrible designer
 - no support for foreign keys (as far as I remember)
 - horrible mappings support (as far as I remember I needed to use lots of hacks and workarounds)

I think we can all agree that this version of EF was rather "TOY" than a reasonable "TOOL". I remember that calling SaveChanges() method on my entity model with a complex hierarchy took quite long time and looking at SQL Profiler I was confused seeing "SQL queries explosions". Therefore we decided to use repository pattern and repository locator pattern and write plain ADO.NET queries. This works fine so far, however sometimes we see that code maintence is hard. Additionally we use our own deserializers to materialize objects. 
At the moment we think about using Entity Framework 4.0. I know there are many improvements and enhancements in this framework and it's fine to use it in small projects. Therefore my question are:

 - what are pros and cons using EF 4.0 and what will be the consequence of using it in a bigger project?
 - how about SQL Queries generated by EF 4.0? Is the performance increased?
 - can EF 4.0 use all processor cores?
 - should we use it now or wait for EF 5.0 where Code first will be supported?


Is is time to use Entity Framework 4.0 now?
===

We are working on a quite big project written in WPF and WCF. The structure of the database contains about 60 tables, lots of stored procedures, views and some functions. We are not using any ORM at the moment. Some time ago when the first version of EF was release we did not go with it because of the known reasons:

 - one threaded only (it uses only one processor core)
 - no support for lazy loading
 - no support for POCO
 - horrible designer
 - no support for foreign keys (as far as I remember)
 - horrible mappings support (as far as I remember I needed to use lots of hacks and workarounds)

I think we can all agree that this version of EF was rather "TOY" than a reasonable "TOOL". I remember that calling SaveChanges() method on my entity model with a complex hierarchy took quite long time and looking at SQL Profiler I was confused seeing "SQL queries explosions". Therefore we decided to use repository pattern and repository locator pattern and write plain ADO.NET queries. This works fine so far, however sometimes we see that code maintence is hard. Additionally we use our own deserializers to materialize objects. 
At the moment we think about using Entity Framework 4.0. I know there are many improvements and enhancements in this framework and it's fine to use it in small projects. Therefore my question are:

 - what are pros and cons using EF 4.0 and what will be the consequence of using it in a bigger project?
 - how about SQL Queries generated by EF 4.0? Is the performance increased?
 - can EF 4.0 use all processor cores?
 - should we use it now or wait for EF 5.0 where Code first will be supported?

