0
我有一个基于Entity Framework构建的Service Repository模式。从LINQ Queryable传递表达式
该服务具有返回IEnumerable的方法,例如Find(IQuery查询)。
IQuery对象是我们自己的查询对象类型,我们将字符串转换为暴露IQueryable的存储库可以使用的IQueryable表达式。
我想要做的是能够在客户端编写一个查询,并通过服务传递,以便我们可以利用静态类型和linq样式查询,而不是构建我们自己的查询对象形成。
换句话说,我希望能够做一些事情,如:
var query = new List<Type>().Where(x => x.Property == "argument").AsQueryable();
service.find(query);
然后我会把它创建可查询或表达式传递给我的信息库和类似的工作。
这种事情是可能的,还是我必须从头开始构建表达式?这似乎应该是可能的,但我真的不知道从哪里开始或看到如何共享这样的表达式的例子。
哪一部分表达的由客户通过?属性密钥?价值? – haim770 2015-02-05 15:43:34
听起来像你应该直接使用EF,因为构建在它上面的平台实际上并没有为你增加价值,而是去掉了价值。 – Servy 2015-02-05 15:44:44
@servy这种方式肯定会更容易些,但其价值来源于不依赖于应用程序其余部分中的EF以及与其分离。服务和存储库提供了一个关注点。 – twifosp 2015-02-05 15:47:42