Asp.net mvc 带EF动态搜索的Linq
我正在使用EF3.5和MVC 我想做一个搜索页面,有一些字段的条件,如日期,整数等 在LINQtoEntities中,动态过滤结果的方法是什么 如果有一个参数我们可以使用 .其中(a=>a.id==1) 但许多与可选参数的组合如何加载结果并传递给模型。ef3.5?无论如何 您可以将搜索条件附加到ObjectQuery、ObjectSet或IQueryable上,并根据哪些搜索条件有用来链接它们Asp.net mvc 带EF动态搜索的Linq,asp.net-mvc,linq,entity-framework,linq-to-entities,Asp.net Mvc,Linq,Entity Framework,Linq To Entities,我正在使用EF3.5和MVC 我想做一个搜索页面,有一些字段的条件,如日期,整数等 在LINQtoEntities中,动态过滤结果的方法是什么 如果有一个参数我们可以使用 .其中(a=>a.id==1) 但许多与可选参数的组合如何加载结果并传递给模型。ef3.5?无论如何 您可以将搜索条件附加到ObjectQuery、ObjectSet或IQueryable上,并根据哪些搜索条件有用来链接它们 public SearchMyThings( string a, string b, int c )
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 );
}
公共搜索神话(字符串a、字符串b、int c)
{
var mywidgets=ObjectContext.CreateObjectSet();
//还是EF1.0版本的CreateSet?
如果(!a.IsNullOrEmpty)
mywidgets=mywidgets.Where(w=>w.AProperty==a);
如果(!b.IsNullOrEmpty)
mywidgets=mywidgets.Where(w=>w.BProperty==b);
如果(c>0)
mywidgets=mywidgets.Where(c=>c.CProperty==c);
}
如果您需要基于字符串的方法,您可以始终使用ObjectQuery.Where(“esql”)的重载来动态构造一些eql并传递它
如果您需要对字符串进行更多的控制,并且不担心复杂性,您可以尝试一下