0

是否可以从ObjectQuery中调用StoredProcedure?基本上我想动态地构建一个查询并在服务器端执行它。您可以将每个查询想象为搜索的一部分,您可以将不同的条件与“和”或“或”组合起来。它正在与这样创建的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

我在代码中看不到任何存储过程调用,但如果要将ObjectQuery或Linq-to-entities查询与存储过程结合使用,答案很简单:不可能。原因与SQL中相同。你不能在SQL中使用存储过程调用的结果集。

您也不能将ObjectQuery/Linq-to-entities查询定义为存储过程。

+0

我想象一个像子查询或WITH块中的存储过程调用。如果不可能,那就是一个可怜的人...... – SACO 2012-01-17 12:58:18