我有如下所示的支付系统。付款可以通过多种礼券进行。礼品券是在购买的同时发放的。顾客可利用此礼券作日后购买用途。当通过礼品优惠券付款时,GiftCoupon表中的giftcoupon列将被更新为该PaymentID (对于礼品优惠券ID)。PaymentID是GiftCoupon表中的外键。
我需要写一个方法:
public DateTime GetPaymentDate(int GiftCouponID)
此方法将找到使用礼券付款的日期。
为了实现这一点,我可以执行以下步骤
在LINQ中是否有一种更简单、更有效的方法来做到这一点?
发布于 2012-07-12 09:42:16
var c = context.GiftCoupons.FirstOrDefault(gc => gc.GiftCouponID == GiftCouponID);
if (c != null && c.Payment != null)
return c.Payment.PaymentDate
发布于 2012-07-12 09:40:54
你可以试试这样的东西。
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的名称。
假设您的所有关系都已正确设置,那么这个(或类似的)应该适合您。
https://stackoverflow.com/questions/11448987
复制相似问题