【发布时间】:2011-01-11 11:19:30
【问题描述】:
我需要创建一个 WCF 服务来返回通过实体框架从数据库中查询的对象。我读过的大多数文章都建议我应该为每种类型的查询创建一个方法。但我认为这会导致我将创建的方法数量激增,例如:
- GetAllCars()
- GetCarsByBrand(字符串品牌名称)
- GetCarsByYear(int year)
- GetCarsByBrandAndYear(string brandName, int year)
- GetCarsByTireSize(浮动轮胎尺寸)
- GetCarsByEngineType(string engineType)
- GetCarsByEngineSizeAndType(float engineSize, string engineType)
- GetCarsByEngineSizeBetween(float lowerEngineSize, float upperEngineSize)
- 等等..
最重要的是,如果需要一个新的查询,那么我将不得不创建一个新的方法来支持它。
必须有更好更通用的方法来做到这一点。理想的情况是客户端可以通过 LINQ 创建表达式树,通过 WCF 发送它,然后通过实体框架运行查询。然后我可以有一种方法来支持所有查询。例如:
- QueryCars(表达式表达式)
或将表达式作为字符串发送:
- QueryCars(字符串表达式)
开发者是如何解决这个灵活查询的问题的?
我目前正在使用 .NET 4.0。安全性并不是真正的问题,因为这只是一个内部应用程序。
【问题讨论】:
标签: .net wcf .net-4.0 entity-framework-4 linq-to-entities