关于WCF,DataService中,查找模型对象时,主键含有数值时找不到对象问题处理

本文介绍了解决DataService中使用含有小数的主键进行查询时遇到的404错误问题。通过在查询条件中添加一个恒为真的表达式,成功修正了URI并实现了正确的数据获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于DataService中主键查询中含有小数的问题。
原代码:var catstore = db.CDS_CateStore
                    .Where(p => p.Cat_ID == item.Key.Cat_ID
                           && p.Drs_ID == this.DS_ID
                           && p.DSal_DBatNo == item.Key.DrPS_BatchNo
                           && p.StoPrice == item.Key.Dins_Price
                        )  
原URI:http://localhost:1984/DataSvc.svc/CDS_CateStore(Cat_ID='110101',Drs_ID='xx00',DSal_DBatNo='2312123',StoPrice=3.0000M)
产生问题:
“/”应用程序中的服务器错误。


无法找到资源。


说明: HTTP 404。您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检查以下 URL 并确保其拼写正确。 


请求的 URL: /DataSvc.svc/CDS_CateStore(Cat_ID='110101',Drs_ID='xx00',DSal_DBatNo='2312123',StoPrice=3.0000M)


版本信息: Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.17929
=================
修改后代码:var catstore = db.CDS_CateStore
                    .Where(p => p.Cat_ID == item.Key.Cat_ID
                           && p.Drs_ID == this.DS_ID
                           && p.DSal_DBatNo == item.Key.DrPS_BatchNo
                           && p.StoPrice == item.Key.Dins_Price
                           && 1==1 //仅仅在此处增加了一个表达式即可
                        )             
修改后URI:http://localhost:1984/DataSvc.svc/CDS_CateStore()?$filter=true and ((((Cat_ID eq '110101') and (Drs_ID eq 'xx00')) and (DSal_DBatNo eq '2312123')) and (StoPrice eq 3.0000M))
结果:OK
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值