2014-09-05 55 views
1

我试图在WCF数据服务5.6.2中使用实体框架5.0(模型优先方法),并遇到以下问题:WCF数据服务是否有任何解决方法来绕过OData V3枚举支持中的缺席?

当数据服务将失败时,WCF数据服务的实体数据模型包含Enum属性在初始阶段:

服务器在处理请求时遇到错误。异常消息是:“类型'Y'上的属性'X'是类型'enum-type-here',它不是受支持的基本类型。”

的异常堆栈跟踪是:

在System.Data.Services.Providers System.Data.Services.Providers.ObjectContextServiceProvider.PopulateMemberMetadata(ResourceTypeCacheItem resourceTypeCacheItem,IProviderMetadata工作区, ProviderMetadataCacheItem metadataCacheItem,PrimitiveResourceTypeMap primitiveResourceTypeMap)。 ObjectContextServiceProvider.PopulateMetadata(ProviderMetadataCacheItem metadataCacheItem)at System.Data.Services.Providers.BaseServiceProvider.LoadMetadata(Boolean skipServiceOperations)at System.Data.Services.Da taService 1.CreateInternalProvider(Object dataSourceInstance) at System.Data.Services.DataService 1.CreateMetadataAndQueryProviders(IDataServiceMetadataProvider & metadataProviderInstance,IDataServiceQueryProvider & queryProviderInstance,对象& dataSourceInstance,布尔& isInternallyCreatedProvider)在 在 System.Data.Services.DataService 1.CreateProvider() at System.Data.Services.DataService 1.HandleRequest()System.Data.Services.DataService` 1.ProcessRequestForMessage(Stream messageBody)at SyncInvokeProcessRequestForMessage(Object,Object [], Object [])at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance,Object [] inputs,Object [] &个输出)在 System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc & RPC)在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc & RPC)在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc & RPC)在System.ServiceModel.Dispatcher.MessageRpc.Process(布尔 isOperationContextSet)

only advise我已经找到解决问题的标记性能如[NotMapped],但磨片ñ我注释T4生成类的枚举属性与此属性它什么都不做,数据服务仍然失败。

此外EF提供WCF DS doesn't support System.Data.Services.IgnorePropertiesAttribute,可用于隐藏枚举仅与反射提供程序。

如何使用WCF数据服务公开字符串而不是DB存储int-backed枚举值?

+0

我会很高兴只是int值 – Jerther 2014-11-26 16:47:27

回答

相关问题