adDetail というエンティティには、重複する値を持つべきではない非 ID フィールドがあります。adShortURL。
カスタムの新しいデータと、adDetail というエンティティに接続されたカスタムの編集画面があります。
新しいデータ画面を使用する場合。フィールドでの検証はうまく機能します。重複値をチェックするためにデータベースに行くことさえあります。
ただし、既存のデータを使用して同じテーブルを編集しようとすると、重複値の検証により画面が保存されなくなります。
スクリーン名を決定しようとしたので、検証の周りに if を入れました。方法が見つかりませんでした。検証で検索できるように、画面パラメーターを設定しようとしました。それはうまくいきませんでした。カスタム検証メソッドで画面パラメーターを使用できませんでした。(どこを見ればいいのかわからないかもしれません)。
追加時に検証し、編集画面で検証をスキップする方法を理解するのを手伝ってください。
ありがとう、ビクター
コードスニペット:
partial void AdShortURL_Validate(EntityValidationResultsBuilder results)
{
// results.AddPropertyError("<Error-Message>");
// *** There is a Bug here that only happens on the Edit Screen. On the edit screen, the check happens and finds a duplicate in the databae prohibiting saving.
//Hit the database and see if there is already a value in there like the one I am Entering.
IDataServiceQueryable<LSAR_AdDetail> adDetails =
this.DataWorkspace.OtLY83U6SQ72SZCG9OtData.LSAR_AdDetails.Where(i =>
i.AdShortURL == this.AdShortURL);
}