如何解决使用实体框架从MySQL存储过程获取输出参数
我有此存储过程,该存储过程将一个条目插入数据库表并返回最新的ID。
CREATE PROCEDURE `sp_AddRelease`(
IN Description varchar(50),OUT ReleaseID int)
BEGIN
INSERT INTO releases(Description) VALUES(Description);
SET ReleaseID = LAST_INSERT_ID();
END
在MySQL Workbench中,调用正常运行
call sp_addrelease('some description',@newid);
select @newid; -- returns latest id
在代码中,我这样映射到存储的proc
modelBuilder.Entity<Release>().MapToStoredProcedures(sp => sp.Insert(i => i.HasName("sp_AddRelease")
.Parameter(p => p.Description,"Description")
.Result(p => p.ReleaseID,"ReleaseID")));
如果Item是包括Description和ReleaseID的对象,这就是我添加记录的方式。上下文是DbContext,发布是DbSet
Releases.Add(Item);
context.SaveChanges();
SaveChanges调用失败,并显示“在集合中找不到参数ReleaseID”。 我正在努力寻找一个示例,在其中可以看到正确的参数和EF代码应该是什么。 理想情况下,我想保持存储过程不变并更改代码。 有什么想法吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。