Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 扩展方法工作不正常_Asp.net Mvc_C# 4.0_Entity Framework 4 - Fatal编程技术网

Asp.net mvc 扩展方法工作不正常

Asp.net mvc 扩展方法工作不正常,asp.net-mvc,c#-4.0,entity-framework-4,Asp.net Mvc,C# 4.0,Entity Framework 4,我的应用程序存在一些有线问题。当我进行调试并检查这些值是否正确更新时。但是如果它在没有调试的情况下运行,则这些值不会正确更新。如何消除此问题 这是我的静态扩展方法 上面的方法正在调用,如下所示 public InvoiceDetail Booking(my parameters) { var bookingProcessModel = BookingProcessDetails(providerKey, ownerKey, serviceId, pet

我的应用程序存在一些有线问题。当我进行调试并检查这些值是否正确更新时。但是如果它在没有调试的情况下运行,则这些值不会正确更新。如何消除此问题

这是我的静态扩展方法

上面的方法正在调用,如下所示

 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;
        }

在上述方法之后,数据库保存值是错误的。但当我对上述扩展方法进行调试并检查其是否正常工作时,问题是什么?有什么帮助吗?

您的扩展方法返回一个十进制数,但您没有将其分配给任何对象

bookingProcessModel.Invoice.CalculateTotal(); 
…只返回一个十进制值,因此您看到的是正确的行为

我认为您不需要为此使用扩展方法,只需在Invoice类中使用一个方法来计算传入发票的总计

比如:

var calculatedInvoice = Invoice.CalculateTotal(bookingProcessModel.Invoice);
CalculateTotal将返回具有计算值的新发票


如果要继续使用扩展方法,则需要指定返回值。

在调试模式下-Catalog.SaveChanges是否会按预期更新值?@swapneel如果我对“bookingProcessModel.Invoice.CalculateTotal”进行调试,则它工作正常:否则not.Nope.这不是问题所在,因此所有属性都是引用类型。如果您的参数正确,那么当我对扩展方法进行调试时,如何正确更新它?问题可能在其他地方?你有什么线索吗
var calculatedInvoice = Invoice.CalculateTotal(bookingProcessModel.Invoice);