gpt4 book ai didi

.net - Entity Framework 4.0 Entity SQL 传递 null ObjectParameter 参数

转载 作者:行者123 更新时间:2023-12-02 07:53:28 24 4
gpt4 key购买 nike

我有一个 Entity 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();

但是,如果“name”变量为 null,则会收到 System.ArgumentNullException。因此,如果名称为 null,我还尝试使用 DBNull.Value,但出现以下异常:

System.ArgumentOutOfRangeException was caught
Message=The specified parameter type 'System.DBNull' is not valid. Only scalar types, such as System.Int32, System.Decimal, System.DateTime, and System.Guid, are supported.

我想要参数化查询,其中空值也是可能的参数值。如何使用 Entity SQL 实现此目的?

最佳答案

你是对的,似乎是 ObjectParameter 构造函数中的一个错误。但 Value 属性似乎接受空值。尝试将您的代码替换为:

var prm = new ObjectParameter("p", typeof(string));
prm.Value = name;

var results = context.CreateQuery<WorkflowInstance>(
query, prm).ToList();

如果直接分配 Value 参数,代码似乎可以工作。

戴维德

关于.net - Entity Framework 4.0 Entity SQL 传递 null ObjectParameter 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4815317/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com