我正在使用带有 Entity Framework 4.0 的动态 where 子句来过滤结果。
像
ObjectQuery<T> tmp = _context.MyTable.where("it.CreatedAt = @p0");
@p0 是一个对象参数
这工作得很好。
但问题是我想要类似的东西:
where("CAST(it.CreatedAt as Date) = @p0");
而 where("SqlServer.CAST(it.CreatedAt as Date) = @p0");
他们两个都失败了。
任何帮助表示赞赏
更新:
错误信息:
找不到类型“日期”。确保加载了所需的模式并且正确导入了命名空间。
查询在哪里
it.IsDeleted = true and ( it.OrganizationName ='05 sep 2012' OR Cast( it.CreatedAt as Date ) =@p4 OR 1=0 )
已提供对象参数。
当前传递的值是 '9/5/2012 12:00:00 AM' 和类似:
string temp = SearchedQuery.Trim();
DateTime res;
if (DateTime.TryParse(temp, out res))
{
query += ((" Cast( it." + field.Name + " as Date ) =@p" + i + ""));
ObjectParameter pr = new ObjectParameter("p" + i, res);
param.Add(pr);
query += " OR ";
}