我的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();
}
当我调试时,我收到Request错误说
“异常消息是'无法为返回类型加载元数据'System.Collections.Generic.List 1[DataServices.KeywordsForPKs]' of method 'System.Collections.Generic.List
1 [DataServices.KeywordsForPKs] GetDomainObjForPKs()'。'。有关详细信息,请参阅服务器日志。异常堆栈跟踪是:
System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance,Object)中的SyncInvokeProcessRequestForMessage(Object,Object [],Object [])上的System.Data.Services.DataService`1.ProcessRequestForMessage(Stream messageBody)中的1.HandleRequest() System.ServiceModel.Dispatcher.DispatchOperationRuntime.ProcessMessage(MessageRpc&amp; rpc)的System.ServiceModel.Dispatcher.DmmatchOperationRuntime.ProcessMessage5(MessageRpc&amp; rpc)位于System.ServiceModel.Dispatcher.ImmutableDispatchRuntime的System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc&amp; rpc)中的[]输入,Object []和输出。 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc&amp; rpc)上的ProcessMessage41(MessageRpc&amp; rpc),位于System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc&放大器; rpc)位于System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc&amp; rpc)的System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc&amp; rpc),位于System的System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc&amp; rpc)。 System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)中的ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc&amp; rpc)“
答案 0 :(得分:0)
尝试将返回类型更改为IEnumerable<KeywordsForPKs>
。文档here表示返回集合的服务操作的返回类型必须为IEnumerable<T>
或IQueryable<T>
。