0

以下のような支払いシステムがあります。お支払いは、複数のギフト クーポンを使用して行うことができます。ギフトクーポンは購入と同時に発行されます。お客様は、このギフト クーポンを今後の購入に使用できます。ギフト クーポンを通じて支払いが行われると、GiftCoupon テーブルの UsedForPaymentID 列がその PaymentID (ギフトクーポン ID 用) で更新されます。PaymentID は GiftCoupon テーブルの外部キーです。

メソッドを書く必要があります:

public DateTime GetPaymentDate(int GiftCouponID) 

このメソッドは、ギフト クーポンを使用して支払いが行われた日付を検索します。

これを達成するために、次の手順を実行できます

  1. GiftCouponID を使用して GiftCoupon オブジェクトを見つけます (GiftCoupon リポジトリから)
  2. GiftCoupon オブジェクトから PaymentID を見つけます。@PID変数に格納
  3. @PID 変数を使用して Payment オブジェクトを検索します (Payment リポジトリから)
  4. Payment オブジェクトから PaymentDate を見つける

LINQ to SQL でこれを行う簡単で効率的な方法はありますか?

ここに画像の説明を入力

4

2 に答える 2

2

このようなことを試すことができます。

public DateTime GetPaymentDate(int GiftCouponID) {
    using(var db = new YourDataContext()) // Create a datacontext
    {

        GiftCoupon gc = db.GiftCouple.SingleOrDefault(g=>g.GiftCouponID == GiftCouponID)
        if(gc != null)
            return gc.Payment.PaymentDate;
        else 
            throw new Exception("No such GiftCouponID");
    }
}

基本的なエラー チェックを追加しました。システムの動作に応じて、より多くの/より少ない必要がある場合があります。明らかに、DataContext の名前も変更する必要があります。

すべての関係が正しく設定されていると仮定すると、これ (または同様のもの) が機能するはずです。

于 2012-07-12T09:40:54.207 に答える
1
var c = context.GiftCoupons.FirstOrDefault(gc => gc.GiftCouponID == GiftCouponID);
if (c != null && c.Payment != null)
return c.Payment.PaymentDate
于 2012-07-12T09:42:16.553 に答える