如何使用MVC5中的invoke方法从存储过程中获取列值

时间:2018-09-10 06:25:44

标签: c# asp.net-mvc entity-framework-6

我已经使用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

注意:我正在使用存储库模式和反射类。 我希望以上解释足以解释我如何获得预期的结果。

0 个答案:

没有答案