如何使用实体框架从c#中的存储过程中获得输出值?



我使用带有.edmx模型的实体框架将一个存储过程连接到一个c#程序。我试图从连接到实体的存储过程中获得一个整数输出值到一个变量。如何从存储过程获得到局部变量的输出结果?

下面是c#中的代码

_db = new DbEntities();
int id = 0;
var fleetid = _db.GetNextFleetId(id);
SQL Server存储过程:
PROCEDURE dbo.GetNextFleetId 
@NewId bigint OUTPUT
AS 
BEGIN
SELECT @NewId = NEXT VALUE FOR dbo.seqFleets;
RETURN;
END

如果我们从数据库中向edmx模型添加存储过程。

我们可以尝试使用ObjectParameter从存储过程中获取输出值。

ObjectParameter outPutId = new ObjectParameter("NewId", typeof(long));
_db.GetNextFleetId(outPutId);
//output value
Convert.ToInt64(outPutId.Value);

最新更新