Выполнение запроса Entity Framework на стороне сервера в сочетании с хранимой процедурой - PullRequest
0 голосов
/ 17 января 2012

Можно ли вызвать StoredProcedure из ObjectQuery?По сути, я хочу динамически построить запрос и выполнить его на стороне сервера.Вы можете представить, что каждый запрос является частью поиска, где вы можете комбинировать различные критерии с «и» или «или».Он отлично работает с ObjectQueries, созданными следующим образом.

var query1 = from a in objectContext.Articles
where a.Name = 'SOMETHING'
select new ResultType { ArticleId = a.ArticleId, Name = a.Name };

var query2 = from a in objectContext.Articles
where a.Name = 'SOMETHING ELSE'
select new ResultType { ArticleId = a.ArticleId, Name = a.Name };

query1 = query1.Intersect(query2); // or union depending on what we need

// ... and more queries

var something = query1.ToList(); // query execution...

Так, как я могу заставить это работать с вызовом хранимой процедуры.Проблема в том, что вызов ExecuteFunction вернет ObjectResult.

1 Ответ

1 голос
/ 17 января 2012

Я не вижу ни одного вызова хранимой процедуры в вашем коде, но если вы хотите объединить запрос ObjectQuery или Linq-to-entity с хранимой процедурой, ответ прост: невозможен. Причина та же, что и в SQL. Вы не можете работать с набором результатов вызова хранимой процедуры в SQL.

Вы также не можете определить ObjectQuery / запрос Linq-to-entity как хранимую процедуру.

...