繁体   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