LINQом из DataTable по индексу?
Я так надеюсь,что все знают что такое индекс на таблице SQL-сервера, для чего нужен и как используется.
Считаем что с сервером все понятно.
Теперь переползаем на клиента - имеем те же данные что на сервере и эти данные достаточно "тяжелые".
Т.е. записи длинные, записей много и записи не сортированы.
Работа с данными (пока) традиционная - через DataTable - загрузили и ищем.
Чтобы не сильно мучатся - ищем LINQом.
Известно, что поиск будет многократный - т.е. любое ускорение - на пользу.
Отсюда два вопроса:
1. Как на DataTable повесить произвольный индекс?
Т.е. есть 150-200 полей и 3 из них мне нужны как индекс.
Про вариант проэмулировать индекс вторичным ключем - слепить вторую таблицу, дистинктнуть в нее эти поля, сделать их первичным ключем и определить реляцию - знаю, но не нравится - хочется именно индекс по таблице без головной боли с поддержанием синхронизации.
2. Как принудить LINQ использовать индекс (пусть и сурогатный) при выполнении поиска?