Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.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
C# 动态Linq where子句抛出OutOfMemoryException_C#_Entity Framework_Linq_Expression Trees_Dynamic Linq - Fatal编程技术网

C# 动态Linq where子句抛出OutOfMemoryException

C# 动态Linq where子句抛出OutOfMemoryException,c#,entity-framework,linq,expression-trees,dynamic-linq,C#,Entity Framework,Linq,Expression Trees,Dynamic Linq,我是Linq的新手,也是表达式树的真正初学者 我有一个通用表达式例程,它构建了一个简单的Linq where子句,我在: 但是,当通过filter函数调用时,Linq会抛出一个OutOfMemoryException。 在我的申请中,它被称为: var jj = db.VW_Job_List.Where(SimpleFilter<VW_Job_List>("JobCustomerID", 449152)); var jj=db.VW_Job_List.Where(SimpleFi

我是Linq的新手,也是表达式树的真正初学者

我有一个通用表达式例程,它构建了一个简单的Linq where子句,我在:

但是,当通过filter函数调用时,Linq会抛出一个
OutOfMemoryException
。 在我的申请中,它被称为:

var jj = db.VW_Job_List.Where(SimpleFilter<VW_Job_List>("JobCustomerID", 449152));
var jj=db.VW_Job_List.Where(SimpleFilter(“JobCustomerID”,449152));
如果使用文本条件调用函数,它将正确返回:

var jj = db.VW_Job_List.Where(SimpleFilter<VW_Job_List>("CompanyCode", "LCS"));
var jj=db.VW_Job_List.Where(SimpleFilter(“CompanyCode”,“LCS”);
使用整型变量有什么特别的地方需要考虑吗?我是否有一些编码错误的东西?如果您有任何想法或见解,我们将不胜感激。

这两个电话

var jj = db.VW_Job_List.Where((p => p.JobCustomerId == 449152));


所以你们要查询数据库?如果是,VW_作业列表表中有多少行?我很感兴趣。我从来没有想过使用
Expression
和不将其与ef一起使用之间的区别。这可以避免我的web应用程序性能下降。非常感谢。
var jj = db.VW_Job_List.Where(SimpleFilter<VW_Job_List>("CompanyCode", "LCS"));
var jj = db.VW_Job_List.Where((p => p.JobCustomerId == 449152));
var jj = db.VW_Job_List.Where(SimpleFilter<VW_Job_List>("JobCustomerID", 449152));
public Expression<Func<TSource,bool>> SimpleFilter<TSource> (string property, object value)
{
    var type = typeof(TSource);
    var pe = Expression.Parameter(type, "p");
    var propertyReference = Expression.Property(pe,property);
    var constantReference = Expression.Constant(value);
    var ret = Expression.Lambda<Func<TSource, bool>>
        (Expression.Equal(propertyReference, constantReference), new[] { pe });
    return ret; // No .Compile()
}