В хранимом SQL-процессе я вставляю строку и надеюсь вернуть IDENTITY INT для новой строки, а затем получить ее в своем коде C #.
ALTER PROCEDURE the_proc @val_2 VARCHAR(10), @val_3 VARCHAR(10)
AS
BEGIN
SET NOCOUNT ON
INSERT INTO the_table (field_2, field_3)
OUTPUT INSERTED.field_1
VALUES (@val_2, @val_3)
END
В C # я использую LINQно я нечетко о том, как получить это значение OUTPUT.Я попытался включить его в качестве параметра OUTPUT в декларации SQL-процедуры, но также не смог заставить это работать (исключение жаловалось на то, что оно не указано в вызове)Самое близкое, что я получил, - это прогулка по коду Db.designer.cs, где IExecuteResult result
ReturnValue содержит 0 (не правильно), но проверка содержащегося в нем представления результатов (result.ReturnValue Results View
) ОБЯЗАТЕЛЬНО имеет искомое значение.
key = (int)(db.TheProc(val2,val3).ReturnValue);
key
возвращается как 0. Мне нужно значение IDENTITY INT из INSERT.