自動生成された削除ステートメントに問題がありました。私の考えでは、削除はちょうどあったはずです
DELETE [tablename] where [PK] = @param
代わりに、4 つの OR を使用してクエリを生成します。
DELETE FROM Market
WHERE (@IsNull_Name = 1)
AND (Name IS NULL)
AND (@IsNull_Description = 1)
AND (Description IS NULL)
AND (MarketId = @Original_MarketId)
OR
(@IsNull_Name = 1)
AND (Name IS NULL)
AND (Description = @Original_Description)
AND (MarketId = @Original_MarketId)
OR
(Name = @Original_Name)
AND (@IsNull_Description = 1)
AND (Description IS NULL)
AND (MarketId = @Original_MarketId)
OR
(Name = @Original_Name)
AND (Description = @Original_Description)
AND (MarketId = @Original_MarketId)
データセット ツールは、ほとんどが PK/インデックスを含むクエリを持つことを主張していますが、なぜそのような複雑なコードを生成するのでしょうか?
これは「ベスト プラクティス」のコードですか?
確かに単純なケースでは 99% のコードが必要ですが、残りの 1% は、自動生成されたコードを編集するか、独自のコードを追加する必要がある場合です。