EF Core 3.0の変更、特にの廃止に対応するためにコードを更新しようとしていますExecuteSqlCommand
。
次のコードは2.2で機能していましたが、前述のように、私は取り除く必要がありますExecuteSqlCommand
。
SqlParameter srcid = new SqlParameter("@srcCharacterId", participantApplication.CharacterId);
SqlParameter newid = new SqlParameter("@newCharacterId", newCharacterId);
SqlParameter pResult = new SqlParameter
{
ParameterName = "@pResult",
SqlDbType = System.Data.SqlDbType.Bit,
Direction = System.Data.ParameterDirection.Output
};
_db.Database.ExecuteSqlCommand("pCharacterCopy @srcCharacterId, @newCharacterId, @pResult OUTPUT", srcid, newid, pResult);
呼び出しをExecuteSqlRaw
(他はすべて同じにして)に変更しようとしましたが、コンパイルはできますが、実行時に次の例外がスローされます。
SqlParameterCollectionはnull以外のSqlParameterタイプのオブジェクトのみを受け入れ、SqlParameterオブジェクトは受け入れません
私はデバッガで確認しましたSqlParameter
が、どれもnull ではありません。呼び出しがExecuteSqlRaw
正しくフォーマットされていないと思われますが、必要のないLinqクエリに呼び出しを統合する以外の例は見つかりません。ストアドプロシージャの呼び出しを開始し、完了したら出力パラメーターを確認したいだけです。