我在我的WCF数据服务中有一个方法,我想在其中返回复杂类型。我已经为复杂类型创建了一个单独的类,并在查询中选择了new。当我执行这个程序时,它抛出了一个“请求错误”。
你能帮帮我吗?
[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();
}当我调试时,我得到一个请求错误,说“异常消息是'Unable to load metadata for return type 'System.Collections.Generic.List1[DataServices.KeywordsForPKs]' of method 'System.Collections.Generic.List1DataServices.KeywordsForPKs GetDomainObjForPKs()‘.查看服务器日志了解更多细节。异常堆栈跟踪是:
在System.Data.Services.Providers.BaseServiceProvider.AddServiceOperation(MethodInfo方法,字符串类型)在System.Data.Services.Providers.BaseServiceProvider.AddOperationsFromType(Type类型)在System.Data.Services.DataService1.CreateProvider() at System.Data.Services.DataService1.HandleRequest()在System.Data.Services.DataService`1.ProcessRequestForMessage(Stream类型)在System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object实例在SyncInvokeProcessRequestForMessage(Object,Object[],Object[] ),Object[]输入,在System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc&远程过程调用)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc&远程过程调用)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc&远程过程调用)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc&远程过程调用)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc&远程过程调用)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc&远程过程调用)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc&远程过程调用)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet的System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& ProcessMessage11(MessageRpc& rpc)“
发布于 2014-02-06 02:57:25
尝试将返回类型更改为IEnumerable<KeywordsForPKs>。文档here意味着返回集合的服务操作必须具有IEnumerable<T>或IQueryable<T>的返回类型。
https://stackoverflow.com/questions/21557939
复制相似问题