Sorry, I didn't have time earlier to elaborate.
This is actually a restriction of the Entity Framework. This worked in DevForce 2009 because we had full control over the object hierarchy. In DevForce 2010, the Entity Framework creates the DevForce objects directly (which results in better performance among other things), but we have to live with this constraint.
An alternative implementation is to define extension methods on interfaces and the mark the entities with the desired interface. This gives the same API feeling for the business object consumers, and the underlying implementation can still be quite clean.
For those unfamiliar with extension methods, here's the MSDN link:
Edited by ting - 26-Jul-2010 at 8:28pm