J'avais un problème avec l'instruction de suppression générée automatiquement. Dans mon esprit la suppression aurait dû êtreQualité des requêtes sql générées automatiquement dans Visual Studio
DELETE [tablename] where [PK] = @param
mais à la place il génère une requête avec 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)
Les outils de dataset insistent presque avoir des requêtes impliquant PK/index pourquoi il génère ce code complexe?
Est-ce que ce code est une «meilleure pratique», si quelqu'un peut me diriger vers une documentation?
Sûrement le cas simple est le code requis de 99%, l'autre 1% devrait être le temps dont vous avez besoin pour éditer le code généré automatiquement ou ajouter le nôtre.
Maintenant, vous avez dit que la grande requête a plus de sens. Le problème que j'avais était de lier un FormView à un DataSource qui utilise l'instruction de suppression ci-dessus - il n'a pas fait la suppression. Peut-être que le FV ne liait pas les valeurs correctes dans le DeleteTemplate: - Je vais vérifier cela. – Adrian