我的應用程序有一些有線問題。當我把一個調試並檢查這些值正確更新。但如果它運行沒有調試,值不能正確更新。如何擺脫此問題。擴展方法無法正常工作
這是我的靜態擴展方法。
public static decimal CalculateTotal(this Invoice invoice)
{
var subTotal = invoice.SubTotal;
var total = subTotal;
if (invoice.Fees == null || !invoice.Fees.Any()) return Math.Round(total, 2);
foreach (var fee in invoice.Fees.Where(f => !f.IsCancelled).OrderBy(f => f.Precedence))
{
var value = 0m;
if (fee.Percentage.HasValue)
{
if (fee.Total != null) value += fee.Total.Value;
}
if (fee.Fixed.HasValue)
{
value += fee.Fixed.Value;
}
total += value;
}
return Math.Round(total, 2);
}
上面的方法調用如下。
public InvoiceDetail Booking(my parameters)
{
var bookingProcessModel = BookingProcessDetails(providerKey, ownerKey, serviceId, petKeys, selectedDates, selectedTimes, selectedExtraServices, selectedResourceId, userType, discount, specialPrices, isProviderPickUp);
bookingProcessModel.Invoice.CalculateTotal();//here I'm calling that method
Catalog.SaveChanges();//data base save
var invoiceDetailModel = GetInvoiceDetailModel(bookingProcessModel.AppointmentModel, bookingProcessModel.Invoice);
return invoiceDetailModel;
}
上述方法,數據的基礎上節約值之後是wrong.But當我把一個調試上面的擴展方法,檢查它的工作properly.What是問題?任何幫助?
在調試模式下 - Catalog.SaveChanges()更新值是否符合您的期望? – swapneel
@swapneel如果我對'bookingProcessModel.Invoice.CalculateTotal()'進行調試,那麼它的工作正常。 :(否則不是。 – Sampath