我正在处理导入存储过程的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
答案 0 :(得分:0)
我认为link可以帮助您(请参阅选定的答案)。
基本上,解决方案可能是为GetMTSearchResultTest_Result
创建一个部分类并使用DataServiceKey
属性进行装饰,提供一个不可为空的列作为主键(尽管我不喜欢不要认为它必须是独一无二的。
所以你的部分课程看起来像是:
[DataServiceKey("YourKeyColumnName")]
public partial class GetMTSearchResultTest_Result {
}
如果您只是在阅读,我认为您不需要任何实施。
希望这有效。如果有问题/问题,请告诉我,我会相应更新。
答案 1 :(得分:0)
您始终可以对非数据服务进行新的服务引用。这是一个普通的WCF服务。您可以简单地让[ContractOperation]返回陷入困境的“复杂类型”列表,就是这样。
这样,您将拥有原始数据服务和新的普通WCF服务两种服务。但这不应该是一个问题。您不必将陷入困境的“复杂类型”作为实体。