zoukankan      html  css  js  c++  java
  • 工作中遇到的问题总结1

    问题(1):

    LINQ To Object 注意区分大小写。

            var caseRefundList = entity.UP_refund_Info_CaseAPIRefund_GetList(accountName.ToLower()).Select(m => new
                            {
                                id = m.CaseID,
                                type = m.CaseType,
                                refund_id = m.id,
                                account_id = m.account_id
                            });

    上述用于UP_refund_Info_CaseAPIRefund_GetList是一个存储过程。

    LINQ To SQL 是不区分大小写。

           var result = entityCSOS_NEW_2.Cases.Where(m => m.CaseId == modelPaypal.CaseID.ToInt()

                                                                  && m.Name == modelPaypal.Name
                                                                  && m.CaseAmount == modelPaypal.RefundPrice
                                                                  && m.CaseCurrency == modelPaypal.RefundCurrency
                                                                ).FirstOrDefault();

    上述Cases是一个dbml文件中的表

    问题(2):对象经过谨慎远程调用后,返回的是一个新的对象副本,而不再指向原来的对象。

       public bool CompareRegulation
                (
                    Model.OrderInfo order,
                    List<Model.OrderInfo> OrderInfoList,
                    List<PayPalPaymentInfo> PayPalList,
                    List<BankPaymentInfo> BankList,
                    List<Model.CostInv> CostInv,
                    List<Model.BuyerBillDetail> BuyerBillDetailList,
                    List<Model.BuyerBillInfo> BuyerBillInfoList,
                    List<Model.OrderPayPalLink> payPalLinks,
                    List<Model.OrderBankLink> bankLinks,
                    List<Model.AccountProperty> accountProperty,
                    decimal SumUpValue,
                    decimal SumDownValue,
                    bool IsDefinite = false //是否精确匹配(按PaypalTransactionID、Currency、TotalPrice 三个条件全匹配,准确性最高)
                )
            {
                 IEnumerable<Model.OrderInfo> UnionOrders = new List<Model.OrderInfo>(); //多订单对比
                 .......................
                 UnionOrders=OrderInfoList;
                 
                 //调用WCF服务方法
                 #region [计算账单邮费新方法WCF]
             
                OrderTotalPrice2 = OrderSystemService.ServiceFactory.Client.Compute(ref UnionOrders, firstOrderPriceDomestic, firstOrderPriceForeign, otherOrderPrice, 
    account.DomesticNameList) + SumUpValue; //调用WCF服务方法后,返回UnionOrders对象的引用地址不在是指向原始的对象,而是一个新的对象副本。(即使该对象被Ref关键字限制;本来引用地址就是Ref传值) //对比成功后;修改数据 foreach (var item in UnionOrders) { item.IsPaid = "1";//此时修改后,原对象OrderInfoList中的IsPaid依然是0;因为调用WCF服务方法后远程对象返回后UnionOrders并不在是指向OrderInfoList对象了。 } } 调用方法 bool result= com.CompareRegulation ( order, OrderInfoList, PayPalList, BankList, CostInv, BuyerBillDetailList, BuyerBillInfoList, payPalLinks, bankLinks, AccountProperty, SumUpValue, SumDownValue ); 此时OrderInfoList结果集中的IsPaid任然是0;因为得到的是WCF服务返回后的一个新的副本。

      

  • 相关阅读:
    3. Longest Substring Without Repeating Characters
    2. Add Two Numbers
    Concurrent Programming(5)
    Concurrent Programming(4)
    Concurrent Programming(3)
    Concurrent Programming(2)
    Concurrent Programming(1)
    Lua用table模拟二维数组
    C#深入研究ArrayList动态数组自动扩容原理
    ==与Equals的作用
  • 原文地址:https://www.cnblogs.com/51net/p/3433485.html
Copyright © 2011-2022 走看看