在客户端应用程序中使用WCF数据服务会引发错误

时间:2010-09-07 12:13:41

标签: wcf

我正在处理导入存储过程的WCF数据服务,如下所示。

    [WebGet]
    public List<GetMTSearchResultTest_Result> GettMTSearchResultTest()
    {
        MediaMarketResearch_PRODEntities ent = new MediaMarketResearch_PRODEntities();
        return ent.GetMTSearchResultTest().ToList();
    }

当我在我的客户端应用程序中使用它时,它将错误称为“关闭类型MMRClient.MMRServiceReference.GetMTSearchResultTest_Result没有相应的元素可设置属性。”

我在绑定到网格视图时收到此错误,如下所示。

    DataServiceContext context = new DataServiceContext(new Uri("http://localhost:4131/MMRDataService.svc/"));
    IEnumerable<GetMTSearchResultTest_Result> empResult = context.Execute<GetMTSearchResultTest_Result>(new Uri("http://localhost:4131/MMRDataService.svc/GettMTSearchResultTest"));
    GridView1.DataSource = empResult;
    GridView1.DataBind();

注意:我将此存储过程导入为复杂类型。

请就此向我提出建议。

此致

Jaydeep

2 个答案:

答案 0 :(得分:0)

我认为link可以帮助您(请参阅选定的答案)。

基本上,解决方案可能是为GetMTSearchResultTest_Result创建一个部分类并使用DataServiceKey属性进行装饰,提供一个不可为空的列作为主键(尽管我不喜欢不要认为它必须是独一无二的。

所以你的部分课程看起来像是:

[DataServiceKey("YourKeyColumnName")]
public partial class GetMTSearchResultTest_Result {
}

如果您只是在阅读,我认为您不需要任何实施。

希望这有效。如果有问题/问题,请告诉我,我会相应更新。

答案 1 :(得分:0)

您始终可以对非数据服务进行新的服务引用。这是一个普通的WCF服务。您可以简单地让[ContractOperation]返回陷入困境的“复杂类型”列表,就是这样。

这样,您将拥有原始数据服务和新的普通WCF服务两种服务。但这不应该是一个问题。您不必将陷入困境的“复杂类型”作为实体。