Есть локальная база, есть серверная.
Есть запрос FindEntryById, который может отправляться к любой из них.
В случае серверной базы, возвращаются только те записи, которые ассоциированы с пользователем, под которым осуществляется подключение к серверу. Перед возвратом модифицируются.
Все запросы к базе выполняются нативными SQL-квирями без ORM.
Запросов тысячи.
Пользователей тысячи.
Нужна обратная совместимость между версиями.
Я стою на пороге написания собственного IQuerable, который будет по разному транслировать запросы на стороне клиента и сервера, оттопыривая наружу единый API.
Меня беспокоит тот факт, что придется повторить путь Linq2Db с моделью CodeFirst, собрать все возможные грабли и реализовать не самый простой интерфейс с разбором экспрешшенов.
Есть ли пути проще?
Также буду рад если вы поделитесь чем-нибудь помимо примеров с MSDN касательно IQuerable и best practice по написанию подобных велосипедов.