【发布时间】:2015-08-13 09:54:36
【问题描述】:
自过去三天以来我一直面临一个问题,在 google 和 stackoverflow 上找不到解决方案。
我的模型中有一个可为空的 int 属性。当我尝试使用动态 where 子句在该列上应用任何函数时,我面临一个错误 - “类型'Int32 的方法?'无法访问”。
假设我的模型结构是 -
public class MyTestModel
{
public int Id { get; set; }
public string Name { get; set; }
public int? ParentId { get; set; }
}
现在,我想要一个从前端动态创建的搜索查询。例如 -
Where("Name.StartsWith(\"t\") and ParentId.ToString().StartsWith(\"1\") ");
我的解决方案已满足所有其他类型,但可空类型在这里不起作用。我也尝试过检查 null ,但不起作用。 (从其他论坛阅读此内容):
Where("Name.StartsWith(\"t\") and (ParentId != null and ParentId.ToString().StartsWith(\"1\")) ");
Where("Name.StartsWith(\"t\") and (ParentId != null and ((int?)ParentId).ToString().StartsWith(\"1\")) ");
【问题讨论】:
标签: c# linq dynamic-linq