Ну, я полагаю, что вы не собираетесь показывать 2,5 миллиона строк в одном и том же списке.
Если вы разрабатываете хорошую разбивку на страницы данных, и способ, которым вы запрашиваете данные, является оптимальным, я не вижу проблемы с WCF.
Я согласен с тем, что запрос данных с помощью интерфейса WCF менее эффективен, чем автономный прямой доступ к инфраструктурному решению, но если вам нужно разместить некоторые бизнес-данные и N-клиентов для доступа к ним в SOA-решении, или это клиент-серверное решение, вы должны быть уверены, что ваши запросы эффективны.
Предложения:
Используйте OR / M. NHibernate будет вашим лучшим выбором, так как он имеет множество способов настройки производительности, а подкачка страниц упрощается благодаря поддержке LINQ через API QueryOver в NHibernate 3.0. Этот продукт имеет очень интересную схему кэширования, и он позволит вашему приложению эффективно визуализировать вашу базу данных длиной 2,5 миллиона строк.
Заниматься кэшированием. NHibernate может помочь вам в этой области, но подумайте об этом, и, в зависимости от технологии клиента (Web, Windows ...), вы найдете хорошие варианты для кэширования представлений (например, ASP.NET для кэширования вывода).
Подумайте, как вы собираетесь сериализовать объекты в WCF: SOAP или JSON? Возможно, вас заинтересует JSON, потому что сериализованные объекты достаточно малы, чтобы сохранить трафик в сети.
Если у вас есть вопросы, просто закомментируйте!