无法使用Linq从Stripe.Net发票中获得Plan或Plan.Name

时间:2019-07-31 13:42:18

标签: asp.net linq stripe-payments

我需要使用类似Linq的东西来选择来自Stripe.Net的特定发票数据。 m.Description为null,因此我需要从Plan.Name获取描述,该描述包含在StripeInvoiceLineItems.Data.Plan.Name中。这是我的代码。

//Get Invoices
var invoices = StripeHelper.GetAllInvoices(merchant.StripeCustomerId);

var convertInvoices = invoices
                .Select(m => new Stripe.StripeInvoice
               {
                   Id = m.Id,
                   Description = m.StripeInvoiceLineItems.Data.Where(i => i.InvoiceId == m.Id).Select(i => i.Plan.Name).ToString(),
                   StripeInvoiceLineItems = m.StripeInvoiceLineItems,
                   Date = m.Date,
                   Paid = m.Paid,
                   Total = m.Subtotal,
                   NextPaymentAttempt = m.NextPaymentAttempt,

               })
               .ToList();

这也不起作用。

m.StripeInvoiceLineItems.Data[0].Plan.Name

没有错误。我只是没有任何数据,我正在尝试使用Plan.Name获取发票的说明。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您应该使用 FirstOrDefault 而不是 Where

  Description = m.StripeInvoiceLineItems.Data.FirstOrDefault(i => i.InvoiceId == m.Id).Plan.Name;

的返回类型为 Quarryable ,并且在这些类型上使用 ToString()没有意义。