我有表達轉換2參數Lambda表達式1個參數Lambda表達式(指定一個參數)
Expression<Func<Car, Driver, bool>> CanBeDrivenBy =
(car, driver) => car.Category == 'B' && driver.Age > 18;
,我想汽車可以通過一些司機
IQueryable<Cars> cars = ...;
Driver driver = ...;
cars.Where(CanBeDrivenBy); // Fail, expecting Expression<Func<Car, bool>>
所以驅動我需要轉換Expression<Func<Car, Driver, bool>>
到Expression<Func<Car, bool>>
(指定驅動程序)
是的我可以使用
cars.Where(c => c.Category == 'B' && driver.Age > 18);
但我需要動態改變表達式的解決方案。而我需要通過表達式(使用實體框架)
你可能想提一提,這就是所謂的鑽營。 – leppie 2010-08-20 11:51:32
哦,哎呀,這也是你的問題:)無論如何,我就是這麼做的。你也許可以更進一步,只使用lambda表達式的主體。 – leppie 2010-08-20 11:52:58
我在C++中學到了這一點,其中函數適配器很常見 – 2010-12-15 21:31:47