1
我有「A」級,其具有「B」類的集合類型的查詢。 「D」是屬性爲「DMatter」(不是從「B」繼承)的屬性「B」的子類有沒有一種方法來使用System.Linq.Dynamic
我可以選擇具有「D」特定內容的「A」,像這樣的常規Linq:
var result =
Aset.Where(a => a.Bs.OfType<D>().Any(d => d.DMatter.Contains("ii"))); //works!
我可以動態地對B的屬性,像這樣:
var result = Aset.Where("Bs.Any(BStuff.Contains(\"bb\"))");//works!
但我不能找到一個辦法是這樣的:
result = Aset.Where("Bs.OfType<D>().Any(DMatter.Contains(\"ii\"))");//Explodes!
任何解決方案?
澄清 「引爆!」東西 – wudzik
@wudzik:它給出了一個例外:ParseException >>沒有屬性或字段'OfType'存在於類型'List'1' at System.Linq.Dynamic.ExpressionParser.ParseMemberAccess(Type type,Expression instance) –
翻閱'System.Linq.Dynamic.ExpressionParser'的代碼,不幸的是,沒有實現'OfType'解析。請參閱[本文](http://social.msdn.microsoft.com/Forums/en-US/fbfa7e59-e97f-4d34-9810-5dbf6b8f444c/dynamic-linq-expression-for-of-type-and-sum?forum= linqtosql)關於它。 –