【发布时间】:2014-12-17 19:29:30
【问题描述】:
我正在使用 Visual Studio 2010 在 ASP.NET 应用程序中实现 Entity Framework DB First。在这个数据库中,有许多这样的存储过程:
CREATE PROCEDURE [dbo].[PKG_EMPRESAS$BUSCAR]
@PID_EMPRESA FLOAT(53) = NULL output
AS
BEGIN
SELECT *
FROM EMPRESAS
WHERE ((@PID_EMPRESA IS NULL) OR (ID_EMPRESA = @PID_EMPRESA));
END
当我尝试在我的 .VB 代码中调用它时:
Dim contexto As New ContextoGPI
Dim query = contexto.PKG_EMPRESAS_BUSCAR(Nothing)
query.GetEnumerator()
(也尝试使用 DBNULL.Value)
在调试时,我的ModeloGPI.edmx 的ModeloGPI.Designer.vb 内的这段代码出现错误:
Public Function PKG_EMPRESAS_BUSCAR(pID_EMPRESA As ObjectParameter) As ObjectResult(Of EMPRESA)
Return MyBase.ExecuteFunction(Of EMPRESA)("PKG_EMPRESAS_BUSCAR", pID_EMPRESA)
End Function
错误信息:
参数数组中索引0处的参数为空
我找不到在我的模型中指定 de SP 的参数@PID_EMPRESA 可以为空的方法。
任何帮助将不胜感激。
【问题讨论】:
-
如果你输入一个
ObjectParameter值null怎么办? -
你是对的,我发现 SP 中的 OUTPUT 是导致这种情况发生的原因。谢谢!
标签: asp.net vb.net entity-framework