我使用带有.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);