Tag: objectquery

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 […]

存储库/ IQueryable /查询对象

我正在构建一个存储库,我在很多地方看到了2个不在存储库外暴露IQueryable的原因。 1)首先是因为不同的LINQ提供者可能表现不同,这种差异应该包含在存储库中。 2)第二是防止服务级别开发人员修改数据库查询,以免意外导致性能问题。 我想问题2只能通过将所有查询逻辑保留在存储库中并且不允许任何forms的外部查询构建来防止? 但这对我来说似乎有点不切实际。 问题1似乎可以通过使用数据对象模式来解决。 例如public IEnumerable FindBy(Query query) 我的问题是,为什么我不仅仅传递一个lambda表达式,因为它与提供者无关,似乎为我提供了与查询对象相同的function,以及相同的分离级别? 例如public IEnumerable FindBy(Expression<Func> predicate) 有什么理由不这样做吗? 它违反了一些规则吗? 最佳做法? 我应该知道的吗?