我想使用代码优先上下文创建WCF服务。 所以我安装了以下的软件包:
WCF Data Services Server for OData V1-3 5.7.0
WCF Data Services Client for OData V1-3 5.7.0
[ServiceBehavior(IncludeExceptionDetailInFaults = true)]
public class TweetService : DataService< Context >
{
// This method is called only once to initialize service-wide policies.
public static void InitializeService(DataServiceConfiguration config)
{
// TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc.
// Examples:
// config.SetEntitySetAccessRule("MyEntityset", EntitySetRights.AllRead);
config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);
// config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
}
}
并删除对System.Data.Services
的任何引用,以解决任何预期的问题。
但我面临以下例外:
服务器在处理请求时遇到错误。异常消息是“在数据上下文类型&#39;上下文”中,有一个顶级IQueryable属性&#39;别名&#39;其元素类型不是实体类型。确保IQueryable属性是实体类型,或者在数据上下文类型上指定IgnoreProperties属性以忽略此属性。&#39;。请参阅服务器日志以获取更多详异常堆栈跟踪是:
System.Data.Services.Providers.ReflectionServiceProvider.PopulateMetadata(ProviderMetadataCacheItem metadataCacheItem)at System.Data.Services.Providers.BaseServiceProvider.LoadMetadata(Boolean skipServiceOperations)at System.Data.Services.DataService1.CreateInternalProvider(Object dataSourceInstance) at System.Data.Services.DataService
1.CreateMetadataAndQueryProviders(IDataServiceMetadataProvider&amp; ;在System.Data.Services.DataService1.CreateProvider() at System.Data.Services.DataService
的System.Data.Services.DataService`1.ProcessRequestForMessage(Stream messageBody)处的; metadataProviderInstance,IDataServiceQueryProvider&amp; queryProviderInstance,Object&amp; dataSourceInstance,Boolean&amp; isInternallyCreatedProvider) System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin中的System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(对象实例,对象[]输入,对象[]和输出)中的SyncInvokeProcessRequestForMessage(Object,Object [],Object [])(MessageRpc&amp; ; rpc)位于S的System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc&amp; rpc) ystem.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc&安培; rpc)位于System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc&amp; rpc)的System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc&amp; rpc),位于System的System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc&amp; rpc)。 ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc&安培; RPC)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc&安培; RPC)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc&安培; RPC)在System.ServiceModel.Dispatcher.MessageRpc .Process(Boolean isOperationContextSet)