Когда вы выполняете сохранение, вы лишаете законной силы кэш. В этот момент вы должны принудительно обновить или каким-либо образом истечь срок действия кэша для любых потребителей. Это зависит от того, как он используется и как вы проектировали свою архитектуру.
Вы уверены, что кэширование действительно необходимо? SQL Server (и другие БД) имеют хорошие функции кэширования, а LINQ dataContext для LINQ to SQL и Entity Framework имеют дополнительные функции, которые можно использовать. Короче, пробовали ли вы использовать
Public Class PageRepository
Shared Function AllPages() As BLL.PageCollection
Return new BLL.PageCollection(LOADALL)
End Function
End Class
Если у вас есть и вам нужно кэширование, можете ли вы передать кэширование в BLL?