Я использую следующий код в службах wcf ria (приложение Silverlight):
public partial class BillingWaterDomainService : LinqToEntitiesDomainService<BilingWaterEntities>
{
public ObservableCollection<PaymentSummary> GetPaymentSummary(long requestId)
{
var paymentSummaries = new ObservableCollection<PaymentSummary>();
var result = GetRequestCostDetailsByRequestId(requestId);
foreach (var requestCostDetail in result.Where(r=>r.BranchCostId.HasValue))
{
if (requestCostDetail.Debtor.HasValue)
{
RequestCostDetail detail = requestCostDetail;
long? costCustomerPrice = 0;
costCustomerPrice =
result.Where(
r => r.CostCustomerDetail.CostCustomerType.CostTypeId == detail.BranchCostDetail.CostType && r.Creditor.HasValue).
Sum(r => r.Creditor != null ? r.Creditor.Value : 0);
paymentSummaries.Add(new PaymentSummary()
{
PaymentTitle = requestCostDetail.BranchCostDetail.CostType1.CostTitle,
Price = requestCostDetail.Debtor.Value-(costCustomerPrice.HasValue ? costCustomerPrice.Value:0)
});
}
}
return paymentSummaries;
}
}
Когда я пытаюсь выполнить этот код, у меня появляется следующая ошибка:
Invoke Operation 'GetPaymentSummary 'failed. Преобразование к типу значения' Int64 'завершилось неудачно, поскольку материализованное значение имеет значение null. Либо универсальный параметр типа результата, либо запрос должен использовать обнуляемый тип
. Эта ошибка возникает в следующих случаях.строка кода:
costCustomerPrice =result.Where(
r => r.CostCustomerDetail.CostCustomerType.CostTypeId == detail.BranchCostDetail.CostType && r.Creditor.HasValue).
Sum(r => r.Creditor != null ? r.Creditor.Value : 0);
И этот кусок кода:
r => r.CostCustomerDetail.CostCustomerType.CostTypeId
как я могу решить эту проблему?!