【问题标题】:Returning complex type in WCF data services getting request error while debugging在 WCF 数据服务中返回复杂类型在调试时出现请求错误
【发布时间】:2014-02-04 16:28:39
【问题描述】:

我的 WCF 数据服务中有一个方法,我想返回一个复杂类型。我为复杂类型创建了一个单独的类,并在查询中选择了新的。当我执行程序时,它会引发“请求错误”。

你能帮我解决这个问题吗?

[WebGet]
        public List<KeywordsForPKs> GetDomainObjForPKs()
        {
            var keys = from key in this.CurrentDataSource.DS_Keyword
                       select new KeywordsForPKs()
                       {
                           PK = key.pk,
                           AccountFK = key.accountFK,
                           ProjectFK = key.projectFK,
                           KeywordExpr = key.keywordExpr,
                           weight = key.weight,
                           IsNotBolded = key.isNotBolded,
                           IsAbstractKeyword = key.isAbstractKeyword,
                           IsBoldedInText = key.isBoldedInText,
                       };
            return keys.ToList();
        }

当我调试时,我收到请求错误说 “异常消息是'无法加载返回类型'System.Collections.Generic.List1[DataServices.KeywordsForPKs]' of method 'System.Collections.Generic.List1[DataServices.KeywordsForPKs] GetDomainObjForPKs()'的元数据。'。有关更多详细信息,请参阅服务器日志。异常堆栈跟踪是:

在 System.Data.Services.Providers.BaseServiceProvider.AddServiceOperation(MethodInfo method, String protocolMethod) 在 System.Data.Services.Providers.BaseServiceProvider.AddOperationsFromType(Type type) 在 System.Data.Services.DataService1.CreateProvider() at System.Data.Services.DataService1 .HandleRequest() 在 System.Data.Services.DataService`1.ProcessRequestForMessage(Stream messageBody) 在 SyncInvokeProcessRequestForMessage(Object , Object[] , Object[] ) 在 System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[]输入、对象 [] 和输出)在 System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc& rpc)在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc) 在 Syste m.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime。 System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet) 处的 ProcessMessage1(MessageRpc& rpc)"

【问题讨论】:

    标签: wcf odata


    【解决方案1】:

    尝试将返回类型更改为IEnumerable&lt;KeywordsForPKs&gt;。文档here 暗示返回集合的服务操作的返回类型必须为IEnumerable&lt;T&gt;IQueryable&lt;T&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多