I am considering to apply Entity Framework in a new project because I liked its OR/M-API as well as the storage/conceptual model mapping-capabilities (plus Linq of course and Entity SQL).
But how can loose coupling be achieved betwen the UI layer and the business layer if EF entities are used as dataholders in both. If I leave the entities attached to their ObjectContext while they reside in the UI, the UI might bypass the business layer and connect straight to the database. If I detach the entities from their ObjectContext before passing them to the UI, there will be no changetracking, so I have to "replay" all changes in the business layer for them to be persisted to the database (difficult to achieve, esp. with parent-child relations). While I don't want the business layer to degrade to a "object-tree-persistence-engine", there are scenarios where having this ability would be helpful.
This certainly applies to other OR-mappers as well, but several alternative products seem to have somewhat better detaching/attaching mechanisms.