我已经构建了Lightswitch应用程序以使用WCF RIA Services数据源。我能够引用我的RIA服务项目,并导入数据类型。但是,对服务的任何调用都会导致在服务上找不到“查询操作[operationname]。”
真正可怕的是,我没有在搜索引擎中发现此错误 - 所以我必须做一些非常错误的事情。
方法签名如下所示:
public IQueryable<md_SKURevMngtRRPPhantom> GetRRPPhantoms(string site, string category, long? segment, DateTime? entryDate){
//implementation here
}
我已经使用Fiddler来查看对服务的调用......它看起来像这样:
http://localhost:26132/RevMngtDomainServiceData.svc/GetRRPPhantoms()?site='610'&category='B'&segment=5L&entryDate=datetime'2013-07-04T00:00:00'
即使是对默认服务方法的无参数请求也会返回相同的错误。 此默认请求定义如下:
[Query(IsDefault = true)]
public IQueryable<md_SKURevMngtRRPPhantom> GetAllRRPPhantoms(){
///implementation here...
}
我的Lightswitch项目如何正确地将WCF RIA服务作为数据源导入,然后调用相同的服务返回“在服务上找不到查询操作[操作名称]。”?
答案 0 :(得分:1)
事实证明我确实做了一些非常错误的事情...我正在返回的md_SKURevMngtRRPPhantom对象是Lightswitch项目的DataSource中定义的一个对象,我通过在我的DomainService中创建它的部分类来添加属性项目。似乎这是一个坏主意。
我更改了DomainService项目以返回一个新定义的类而不是md_SKURevMngtRRPPhantom类,并且一切正常。