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 回答