我正在創建一個可以接收任何Linq查詢的通用表單(C#)。在這種形式下,我希望能夠添加過濾器(WHERE子句)。對於'=','>','Like'等運營商,我可以做類似IQueryable.Where(someFieldname + "> @0", someCriteria)
的事情。但是當我想要做一個T-sql的「IN」時,我完全失去了。我查了幾個小時,但找不到實現它的方法。如何使用動態Linq實現tsql「IN」等效
在思考時,應該可以將IN子句的值放入字符串數組或字符串的其他簡單列表中。然後將該列表與基本查詢結合起來。但是,如果基本查詢可以是任何查詢,我怎麼能加入這兩個?
例: 說我的基本查詢是一樣的東西:
IQueryable<Object> q = from a in db.Adresses
select new { a.Street, a.HouseNr };
在窗體我希望能夠在HouseNr過濾這樣的:當HouseNr IN(1,3,5) 數字(1,3,5)可用於字符串數組(或任何其他字符串列表)。
我該如何做到這一點,知道基本查詢可以是任何東西?
我不認爲一個人理解你的問題。您可以使用Dynamic Linq來生成'OR'語句的列表,但這不完全與'IN'子句相同。 –