我需要創建一個WCF服務以通過實體框架返回從數據庫查詢的對象。我讀過的大多數文章都建議我應該爲每種類型的查詢創建一個方法。但我認爲這將導致方法數量的爆炸,我將創建,例如:實體框架4通過WCF的LINQ to Entities查詢
- GetAllCars()
- GetCarsByBrand(字符串名優產品)
- GetCarsByYear(INT年)
- GetCarsByBrandAndYear(串名優產品,INT年)
- GetCarsByTireSize(浮動tireSize)
- GetCarsByEngineType(字符串engineType)
- GetCarsByEngineSizeAnd類型(浮動engineSize,串engineType)
- GetCarsByEngineSizeBetween(浮動lowerEngineSize,浮動upperEngineSize)
- 等。
最重要的是,如果需要一個新的查詢,那麼我將不得不創建一個新方法supoport它。
必須有一個更好的更通用的方法來做到這一點。如果客戶端可以通過LINQ創建表達式樹,通過WCF發送它,然後通過實體框架運行查詢,那麼理想的是什麼。然後我可以有一種方法來支持所有查詢。例如:
- QueryCars(表達式表達式)
或發送表達式作爲字符串:
- QueryCars(字符串表達式)
如何有開發商解決了這個靈活查詢問題?
我目前在.NET 4.0中工作。由於這僅僅是一個內部應用程序,所以安全性並不是一個問題。
這看起來像我正在尋找的答案。出於好奇,在WCF數據服務之前如何解決這個問題? – Mas 2011-01-11 11:44:44