前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >工作中遇到的问题总结1

工作中遇到的问题总结1

作者头像
跟着阿笨一起玩NET
发布2018-09-18 18:00:55
3530
发布2018-09-18 18:00:55
举报
文章被收录于专栏:跟着阿笨一起玩NET

问题(1):

LINQ To Object 注意区分大小写。

代码语言:javascript
复制
        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 是不区分大小写。

代码语言:javascript
复制
       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):对象经过谨慎远程调用后,返回的是一个新的对象副本,而不再指向原来的对象。

代码语言:javascript
复制
   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服务返回后的一个新的副本。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2013-11-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档