Entity Framework and Stored Procedures Mismatched Entities/Models
===

I'm really looking for advice here on best practices so I will explain the situation.  We have a fairly large application built on top of POCO and EF 4 with a complicated database.  While we have been happy with Entity Framework there are definite performance improvements to be made for example with the following scenario (quite simplified).

We have a table called News which has a collection of users that have added it to their favourites and a collection of ratings (1 - 5) by users for example:

    public class News
    {
       public virtual int NewsId;
       public virtual string Title;
       .......etc....

       public virtual ICollection<User> UserFavourites { get; set; }
       public virtual ICollection<Rating> Ratings { get; set; }
    }

We have written a stored procedure which returns news for a user and allows us to return whether it is a favourite and whether it has already been rated by the user we are requesting the data for and the current rating for News rather than use EF to build this data from the ICollections.

The stored procedure is much faster and a single database hit rather than EF with Lazy Loading which could be multiple calls but the data returned by the sproc does not match the POCO class for news which is above.  

We have been trying to workout the best way to move forward with this as we have a INewsRepository which can either return the entity framework related class or the custom DataModel class we are populating with a stored procedure and ADO.NET.  This doesn't feel right and I would appreciate any advice or insight from others experience about the best way to handle these scenarios when you want a single object with data built from multiple tables which would be a lot faster with a sproc than an entity framework call with lazy loading enabled.

Many thanks for any help