簡體   English   中英

使用MVC + Linq + EF搜索頁面

[英]Search page with MVC + Linq + EF

所以,我想實現一個在數據庫中搜索記錄的頁面。 該動作的URL應該類似於“〜/ Mail / List / {PropertyName} / {PropertyValue}。

屬性名稱和值是要過濾的相應實體屬性名稱,值是要匹配的屬性值。 問題是該實體包含許多類型的屬性。 Int,string,date ..等

問題是,如何實現動態搜索頁面或類似的東西來過濾我的查詢?

謝謝!

所有LINQ運算符都希望傳入lambdas。所以當你想像Where(x => x.[PropertyName] == [PropertyValue])那樣進行過濾時,你需要能夠構造相應的lambda表達式。 通常,當在編譯時知道值時,沒有問題,你只需要構造lambda。

如果在編譯時不知道值,則必須手動構造表達式樹 (基本上是lambda表達式)。 這可能有點復雜,但有一些庫可以幫助你,比如Dynamic LINQ是EF的另一個好教程)。 然后,您可以將Where條件指定為字符串,並且運行時庫將其轉換為表達式樹,或者如果錯誤則拋出異常。

因此,在您的示例中,使用Dynamic LINQ,您可以執行db.Mails.Where(PropertyName + " == @0", PropertyValue);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM