首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在LINQ中查找引用对象的有效方法

在LINQ中查找引用对象的有效方法
EN

Stack Overflow用户
提问于 2012-07-12 09:37:11
回答 2查看 117关注 0票数 0

我有如下所示的支付系统。付款可以通过多种礼券进行。礼品券是在购买的同时发放的。顾客可利用此礼券作日后购买用途。当通过礼品优惠券付款时,GiftCoupon表中的giftcoupon列将被更新为该PaymentID (对于礼品优惠券ID)。PaymentID是GiftCoupon表中的外键。

我需要写一个方法:

代码语言:javascript
运行
复制
public DateTime GetPaymentDate(int GiftCouponID) 

此方法将找到使用礼券付款的日期。

为了实现这一点,我可以执行以下步骤

  1. 使用GiftCoupon找到GiftCouponID对象(来自GiftCoupon存储库)
  2. 从PaymentID对象中查找GiftCoupon。存储在@PID变量中
  3. 使用@PID变量查找支付对象(来自支付存储库)
  4. 从支付对象中查找PaymentDate

在LINQ中是否有一种更简单、更有效的方法来做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-12 09:42:16

代码语言:javascript
运行
复制
var c = context.GiftCoupons.FirstOrDefault(gc => gc.GiftCouponID == GiftCouponID);
if (c != null && c.Payment != null)
return c.Payment.PaymentDate
票数 1
EN

Stack Overflow用户

发布于 2012-07-12 09:40:54

你可以试试这样的东西。

代码语言:javascript
运行
复制
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的名称。

假设您的所有关系都已正确设置,那么这个(或类似的)应该适合您。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11448987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档