У меня есть хранимая процедура SQL, к которой я обращаюсь с помощью Linq-To-SQL.Он возвращает несколько результирующих наборов, а также пару выходных параметров.Это работает, когда я запускаю процедуру как Запрос в SQL, но когда я пытаюсь получить к ней доступ из своего кода C #, она не хочет работать.Параметр 'UserHasAccessToOption' всегда возвращает значение false, хотя в хранимой процедуре ему присваивается только значение true.
Опять же, он возвращает и позволяет просматривать другие ResultSets, которые возвращаются хранимой процедурой, ноне возвращает ЛЮБЫХ выходных параметров SQL.
Вот мой код для доступа к хранимой процедуре и возврата объекта IMultipleResults:
[FunctionAttribute(Name = "dbo.GetOption")]
[ResultType(typeof(Option))]
[ResultType(typeof(LoanPurpose))]
[ResultType(typeof(LoanType))]
[ResultType(typeof(User))]
[ResultType(typeof(Client))]
[ResultType(typeof(OrganizationFinancialItem))]
public IMultipleResults GetOption(
int? OptionID,
int UserID,
bool GetClients,
bool GetOtherOrganizationUsers,
bool GetLoanPurposes,
bool GetLoanTypes,
bool GetOrganizationFinancialItems,
ref bool? UserHasAccessToOption)
{
using (profiler.Step("Call \"GetOption\" SProc"))
{
IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod()))
, OptionID
, UserID
, GetClients
, GetOtherOrganizationUsers
, GetLoanPurposes
, GetLoanTypes
, GetOrganizationFinancialItems
, UserHasAccessToOption);
return (IMultipleResults)(result.ReturnValue);
}
}