Я не понимаю, почему вам нужно скомпилировать запрос. Если вы используете запросы Linq к типизированному DataSet, это тип запроса Linq To Objects, что означает, что все это выполняется в памяти, что должно быть очень быстрым. Однако, если вы действительно хотите скомпилировать запрос Linq to Objects, вы можете вызвать AsQueryable() в IEnumerable, с которым вы запрашиваете, и затем сохранить полученный запрос для последующей оценки. Я считаю, что это приведет к тому, что поставщик Linq to Objects будет компилировать запрос, т. Е .:
var compiledQuery = from r in _History_for_Permit__POI__Data_.AsQueryable()
where r.POI_Name == poiName
select r