在linq查询中使用函数时获取函数评估超时错误

时间:2015-03-27 10:54:56

标签: c# linq

提前致谢。

我正在尝试查询对象并从结果中创建匿名类型。我在linq查询中使用了一个函数。在这个阶段,我收到一条错误,说“功能评估已禁用,因为之前的功能评估已超时。您必须继续执行以重新启用功能......”

请在下面找到我的示例代码。

var serviceResult = _service.GeResponse(panId, numberOfTransactions, startDate, endDate);

var balanceTrans = GetAllTypes<BalanceAdjustment>(serviceResult);
var presentmentTrans = GetAllTypes<Presentment>(serviceResult);

var test = balanceTrans.AsEnumerable();
var obj = test.Select(item => new SearchCardTransactionResult
{
    PanId = item.PanId,
    CardNumber = item.CardNumberFormatted,
    Balance = item.FinancialBalance,
    BillingAmount = Math.Abs(item.BillingAmount).Format(),
    BillingCurrency = GetCurrencyCode(item.BillingCurrency)
});


private IList<T> GetAllTypes<T>(GetTransactionsResponse result)
    where T : ValitorServices.ValitorPanWS.AbstractFinancialTransaction
{
    return result.FinanacialTransactions.OfType<T>().ToList();
}

有人可以建议我在这里做错了吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

我设法使用以下代码解决。

var currencyCodes = _service.GetCurrencyCodes().ToList();
var test = balanceTrans.AsEnumerable();

    var obj = test.AsEnumerable().Select(item => new SearchCardTransactionResult
    {
        PanId = item.PanId,
        CardNumber = item.CardNumberFormatted,
        Balance = item.FinancialBalance,
        BillingAmount = Math.Abs(item.BillingAmount).Format(),
        BillingCurrency = currencyCodes.First(c=>c.NumericCode.Equals(item.BillingCurrency)).AlphabeticCode
    });