[英]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.