我有一个实体 SQL 查询:
SELECT VALUE t FROM MyEntities AS t
WHERE t.Name = @p OR (@p IS NULL AND t.Name IS NULL)
我可以按如下方式执行查询:
var results = context.CreateQuery<WorkflowInstance>(
query, new ObjectParameter("p", name)).ToList();
但是,如果“名称”变量为空,那么我会得到 System.ArgumentNullException。因此,如果名称为空,我也尝试使用 DBNull.Value,我得到以下异常:
System.ArgumentOutOfRangeException 被捕获
Message=指定的参数类型“System.DBNull”无效。仅支持标量类型,例如 System.Int32、System.Decimal、System.DateTime 和 System.Guid。
我想要参数化查询,其中空值也是可能的参数值。如何使用 Entity SQL 实现这一目标?