0

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);
}
4

1 に答える 1

1

私は個人的にこの方法でそれを照会しません。既に存在するレコードがあるかどうかを確認するだけなので、Int 変数を使用して、AdShortURL == 探しているレコードの数を返します。

    var myCount = (from items in this.DataWorkspace.OtLY83U6SQ72SZCG9OtData.LSAR_AdDetails
             where items.AdShortURL == this.AdShortURL
             select items).Execute().Count();
于 2012-09-13T13:18:00.507 に答える