【发布时间】:2011-12-10 08:20:20
【问题描述】:
我有一个 SQL 存储过程,我需要能够将 NULL 作为值传递给它的参数之一,以便在这样的查询中使用:
create procedure sp
@param1 varchar(30)
as
select * from table where field = isnull(@param1, field)
所以我需要知道如何告诉 EF 使 @param1 可以为空。我该怎么做?
谢谢!
如果有帮助,我使用 EF 的过程是:
- 创建 SP
- 更新模型 (edmx)
- 添加新功能导入
- 点击按钮生成新的复杂类型
- 在单独的模板文件上运行自定义工具(生成 POCO)
【问题讨论】:
-
如何将 NULL 传递给 varchar(30),除非它是可选参数?
-
它不会给出错误,它在运行时需要一个非空参数吗?
-
@Akash - 是的,因为生成的复杂类型将此参数作为字符串而不是“字符串?”,因此问题。
-
@subt13 -1,请阅读关于 C# 字符串的一些内容,String 默认可以为空,如果你能证明字符串?存在或什至可能,我将删除我的反对票。
-
@Akash - 是的,我意识到没有字符串?并且该字符串已经可以为空。顺便说一句,如果您对这个问题有答案,请随时发布,而不是向我发送垃圾邮件。
标签: c# tsql entity-framework-4 poco