0

私のRepository.csには、以下のメソッドがあります

/*** Execute stored procedure ***/
public virtual void ExecuteProcedure(String procedureCommand, params SqlParameter[] sqlParams)
{
  Ctxt.Database.ExecuteSqlCommand(procedureCommand, sqlParams);
}

私のクライアントリポジトリから次のように呼び出しています:

public bool CanLock(int spvId)
{
  SqlParameter[] parameter = { new SqlParameter ("spvId", spvId) };
  bool isLock = ExecuteProcedure("Exec prc_SitePartVrsn_CanLock {0}", parameter);
  return false;
}

エラーが発生しています:

ExecuteProcedure に無効な引数があります。

誰かがパラメータを渡す方法を提案できますか?

また、prc_SitePartVrsn_CanLock出力パラメーターがあります。出力パラメーターを渡し、クライアント リポジトリで使用する値を取得する方法も教えてください。

4

2 に答える 2

1

以下を使用してこれを解決しました:

    public bool CanLock(int spvId)
    {
        SqlParameter parameter = new SqlParameter("spvId", SqlDbType.Int);
        parameter.Value = spvId;

        ExecuteProcedure("Exec prc_SitePartVrsn_CanLock {0}", parameter);
        return false;
    }

ただし、パラメーターの配列を一度に作成するなど、これを処理するより良い方法はありますか?

于 2013-05-22T10:16:17.303 に答える