ObjectContext из набора данных

Я пытаюсь скомпилировать запрос linq.

Func<ImportNewPermits_Enviance, String, EnumerableRowCollection<ImportNewPermits_Enviance._History_for_Permit__POI__Data_Row>> s_compiled =
    CompiledQuery.Compile<ImportNewPermits_Enviance, String, EnumerableRowCollection<ImportNewPermits_Enviance._History_for_Permit__POI__Data_Row>>(
        (ctx, poiName) => from r in ctx._History_for_Permit__POI__Data_
                          where r.POI_Name == poiName
                          select r);

Прямо сейчас я сталкиваюсь с ошибкой There is no implicit reference conversion from ImportNewPermits_Enviance to System.Data.Objects.ObjectContext

ImportsNewPermits_Enviance — это имя типизированного DataSet.

Как мне получить ObjectContext из типизированного DataSet


person clarity    schedule 09.01.2013    source источник
comment
Вы не знаете. ObjectContext/CompiledQuery — часть Entity Framework, DataSet — часть классического ADO.NET. Две отдельные и в основном несвязанные технологии доступа к данным.   -  person luksan    schedule 09.01.2013
comment
Хорошо, как я могу скомпилировать запрос linq, который запрашивает DataSet   -  person clarity    schedule 09.01.2013


Ответы (1)


Я не понимаю, зачем вам компилировать запрос. Если вы используете запросы Linq к типизированному набору данных, это тип запроса 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
person luksan    schedule 09.01.2013