Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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# 实体框架无法统计可空类型的记录_C#_Entity Framework_Linq_Expression - Fatal编程技术网

C# 实体框架无法统计可空类型的记录

C# 实体框架无法统计可空类型的记录,c#,entity-framework,linq,expression,C#,Entity Framework,Linq,Expression,嗨,我有一个类,它为我的过滤器值返回System.Linq.Expression var deleg = ExpressionBuilder.GetExpression<T>(SearchFilter).Compile(); query = query.Where(deleg).AsQueryable(); 现在,当我将.TOList()应用于此查询时: var list = query.ToList(); 它会导致错误: 转换为值类型“System.Int32”失败,因为

嗨,我有一个类,它为我的过滤器值返回System.Linq.Expression

 var deleg = ExpressionBuilder.GetExpression<T>(SearchFilter).Compile();
 query = query.Where(deleg).AsQueryable();
现在,当我将
.TOList()
应用于此查询时:

 var list = query.ToList();
它会导致错误:

转换为值类型“System.Int32”失败,因为具体化的值为null。结果类型的泛型参数或查询必须使用可为空的类型

我生成的实体如下所示:

public partial class MyViewTable
{
    public System.DateTime START_TIME { get; set; }
    public Nullable<System.DateTime> END_TIME { get; set; }
    public Nullable<System.DateTime> INTERVAL_START { get; set; }
    public Nullable<System.DateTime> INTERVAL_END { get; set; }
    public Nullable<int> FILE_Num { get; set; }
    public string PROGRAM_Num { get; set; }
    public string FILETYPE { get; set; }
    public string DIRECTION { get; set; }
}
公共部分类MyViewTable
{
public System.DateTime START_TIME{get;set;}
公共可为空的结束时间{get;set;}
公共可为空的间隔\u START{get;set;}
公共可空区间_END{get;set;}
可为空的公共文件\u Num{get;set;}
公共字符串程序_Num{get;set;}
公共字符串文件类型{get;set;}
公共字符串方向{get;set;}
}

请帮忙

你的搜索过滤器是什么样子的?它是一个
列表搜索过滤器
public class SearchFilter
{public string SearchField{get;set;}public dynamic SearchText{get;set;}public Op Operation{get;set;}serach表达式将结果显示为`{System.Linq.Enumerable+WhereEnumerableIterator
1[Domain.Database.Edmx.MyViewTable]}
能否在Where()中发布筛选器表达式?(例如,其中(w=>w.END\u TIME.HasValue))。
public partial class MyViewTable
{
    public System.DateTime START_TIME { get; set; }
    public Nullable<System.DateTime> END_TIME { get; set; }
    public Nullable<System.DateTime> INTERVAL_START { get; set; }
    public Nullable<System.DateTime> INTERVAL_END { get; set; }
    public Nullable<int> FILE_Num { get; set; }
    public string PROGRAM_Num { get; set; }
    public string FILETYPE { get; set; }
    public string DIRECTION { get; set; }
}