簡體   English   中英

Linq與EF動態搜索

[英]Linq with EF dynamic search

我將EF 3.5和MVC一起使用。

我想創建一個搜索頁面,其中包含一些字段,例如日期,整數等。

在linq中,實體如何動態地過濾結果。

如果有一個參數,我們可以使用.where(a => a.id == 1)

但是許多與可選參數組合的方法如何加載結果然后傳遞給模型。

EF 3.5? 無論如何...

您可以將搜索條件附加到ObjectQuery,ObjectSet或IQueryable上,並根據有用的搜索條件將它們鏈接起來。

public SearchMyThings( string a, string b, int c )
{
     var mywidgets = ObjectContext.CreateObjectSet<Widget>();
     //or the EF 1.0 version CreateSet?

     if( !a.IsNullOrEmpty )
        mywidgets = mywidgets.Where( w => w.AProperty == a );

     if( !b.IsNullOrEmpty )
        mywidgets = mywidgets.Where( w => w.BProperty == b );

     if( c > 0 )
        mywidgets = mywidgets.Where( c => c.CProperty == c );

}

如果需要基於字符串的方法,則始終可以使用ObjectQuery.Where(“ esql”)的重載來動態構造一些eql並將其傳遞。

如果您需要對字符串的更多控制並且不擔心復雜性,可以嘗試Dynamic Linq

暫無
暫無

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

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