我已经使用getMethod.Invoke方法在ASP.NET MVC 5中执行存储过程。方法“ GetStoredProcedure”能够执行存储过程,但无法获取确切的返回值(ID及其名称)从存储过程。 我从EF而不是列表值(ID及其名称)获得了以下结果”“ {System.Data.Entity.Core.Objects.ObjectResult`1 [EF.Data.SaveTEST1_Result]} System.Linq.IQueryable {System.Linq。 EnumerableQuery}”。
请帮助我如何使用EF ASP.NET MVC 5中的invoke方法从存储过程中获取返回值。
我粘贴了我使用过的代码示例
public object GetStoredProcedure(string storedProcedure, object[] parameters)
{
Type contextType = context.GetType();
MethodInfo getMethod = contextType.GetMethod(storedProcedure);
var result = getMethod.Invoke(context, parameters);
return result;
}
以及存储过程:
CREATE PROCEDURE SaveTEST1
(@id INT, @name VARCHAR(5))
AS
BEGIN
DECLARE @MaxID INT
SELECT @MaxID = MAX(ID)
FROM TEST1
INSERT INTO TEST1
VALUES(@MaxID, @name)
SELECT ID, Name
FROM TEST1
WHERE ID = @MaxID
END
注意:我正在使用存储库模式和反射类。 我希望以上解释足以解释我如何获得预期的结果。