首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在EF 4.0的SP中使用OutPut参数

如何在EF 4.0的SP中使用OutPut参数
EN

Stack Overflow用户
提问于 2010-06-05 01:52:35
回答 3查看 14.4K关注 0票数 17

我用我的存储过程更新了我的模型,在模型浏览器中,我可以看到它也有一个函数导入。

我的SP会在没有记录的情况下插入一条记录,否则返回1,否则返回0,我认为这非常简单。

SP

代码语言:javascript
运行
复制
CREATE PROCEDURE [dbo].[User_UpdateMessage]
(
@UserId int = 0, 
@UserId2 int = 0,
@Success bit = 0 OUTPUT
)
AS
BEGIN
SET NOCOUNT ON;

IF NOT EXISTS ( SELECT [UserIdFrom] FROM  [dbo].[MessageUpdate] WHERE [UserIdFrom] = @UserId AND [UserIdTo] = @UserId2 )
BEGIN
    INSERT INTO [dbo].[MessageUpdate] ([UserIdFrom], [UserIdTo])
    VALUES (@UserId, @UserId2)
    SELECT @Success = 1;
END
ELSE
    SELECT @Success = 0;
END

在我的代码中,我调用了SP:

代码语言:javascript
运行
复制
// Output Parameter
System.Data.Objects.ObjectParameter paramSuccess1 = 
new System.Data.Objects.ObjectParameter("Success", typeof(byte));
_Entity.User_UpdateMessage(id, userId, paramSuccess1);

执行SP时失败,并显示以下错误:

存储数据提供程序返回的数据读取器没有足够的列用于请求的查询

更新

在我写这篇文章的时候,我解决了这个问题。在模型设计器中,返回类型应该是none,我让它返回Byte。

这个问题的答案可能是进一步的增强或更改。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2976532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档