【发布时间】:2011-01-27 10:44:37
【问题描述】:
我有一个实体 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 实现这一点?
【问题讨论】:
标签: .net entity-framework .net-4.0 entity-framework-4 entity-sql