Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 带EF动态搜索的Linq_Asp.net Mvc_Linq_Entity Framework_Linq To Entities - Fatal编程技术网

Asp.net mvc 带EF动态搜索的Linq

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 )

我正在使用EF3.5和MVC

我想做一个搜索页面,有一些字段的条件,如日期,整数等

在LINQtoEntities中,动态过滤结果的方法是什么

如果有一个参数我们可以使用 .其中(a=>a.id==1)

但许多与可选参数的组合如何加载结果并传递给模型。

ef3.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 );

}
公共搜索神话(字符串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并传递它

如果您需要对字符串进行更多的控制,并且不担心复杂性,您可以尝试一下