Я использовал метод getMethod.Invoke для выполнения хранимой процедуры в ASP.NET MVC 5. Метод «GetStoredProcedure» может выполнить хранимую процедуру, но не может получить точное возвращаемое значение (идентификатор и его имя) из хранимой процедуры.
Я получил следующие результаты из EF вместо значения списка (ID и его имя) "{System.Data.Entity.Core.Objects.ObjectResult`1 [EF.Data.SaveTEST1_Result]} System.Linq.IQueryable {System.Linq. EnumerableQuery}».
Пожалуйста, помогите мне, как получить возвращаемое значение из хранимой процедуры, используя метод invoke в EF ASP.NET MVC 5.
Я вставил пример кода, который я использовал
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
Примечание: я использую шаблон репозитория и класс отражения.
Я надеюсь, что приведенного выше объяснения достаточно, чтобы объяснить мне, как получить ожидаемый результат.