Есть еще один способ, которым я нашел работу, вам нужно построить класс, который происходит из вашего класса Product и использовать его. Например:
public class PseudoProduct : Product { }
public IQueryable<Product> GetProducts(int categoryID)
{
return from p in db.Products
where p.CategoryID== categoryID
select new PseudoProduct() { Name = p.Name};
}
Не уверен, что это разрешено, но оно работает.