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