ReturnValue パラメータの SqlParameterCollection を調べ、存在する場合はその値に制約違反がないかチェックするメソッドがあります。
public static void VerifyUniqueness(this ISqlServerProvider provider,
OperationType operationType, SqlParameterCollection cp)
このメソッド内で、最初に確認するだけで十分だと思いました。
if (cp["@ReturnValue"]==null){return;}
ただし、「@ReturnValue」== nullの場合は例外がスローされるため、Linqを使用すると思いました:
cp.FirstOrDefault(p => p.ParameterName == "@ReturnValue");
しかし、それはコンパイルさえしません。
'System.Data.SqlClient.SqlParameterCollection' には 'FirstOrDefault' の定義が含まれておらず、タイプ 'System.Data.SqlClient.SqlParameterCollection' の最初の引数を受け入れる拡張メソッド 'FirstOrDefault' が見つかりませんでした (using ディレクティブがありませんか?またはアセンブリ参照?)
System.Linq が参照されているため、何が起こっているのかわかりません。