聲明:我已經使用System.Linq.Expressions中的表達式解決了該問題,但我仍在尋找更好/更簡單的方法。LINQ中的動態where子句 - 列名在運行時可用
考慮以下情況:
var query =
from c in db.Customers
where (c.ContactFirstName.Contains("BlackListed") ||
c.ContactLastName.Contains("BlackListed") ||
c.Address.Contains("BlackListed"))
select c;
列/需要對列入黑名單的期限進行檢查屬性只適用於我在運行時。我如何生成這個動態where子句?
另一個複雜的問題是,Queryable集合(db.Customers上面)被鍵入到'Customer'的基類(稱爲'Person')的Queryable中,因此如上所述編寫c.Address不是一個選項。
我很想看看您的Expressions解決方案,有機會添加到您的答案?乾杯。 – Kev 2008-10-24 17:18:11
看到這個[問題](http://stackoverflow.com/questions/30879/is-there-a-pattern-using-linq-to-dynamically-create-a-filter)和我的後續答案有關動態LINQ查詢 – Geoff 2008-10-24 17:18:50