entity framework查询的服务器端执行与存储过程相结合

是否可以从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。

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

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