相关疑难解决方法(0)

WCF OData服务和EF 6问题 - 无法使用Odata服务公开实体

我正在使用WCF数据服务(Odata)与.NET framework 4.5.1和EF 6.1.我已经使用代码第一种方法来创建EF模型.当我将此EF模型(AddProjectModel.cs)引用到WCF OData服务(WcfDataService1.svc)时,它会抛出以下错误:

错误:

服务器遇到处理请求的错误.异常消息是'在数据上下文类型'AddProjectModel',有一个顶级IQueryable属性'Assets',其元素类型不是实体类型.确保IQueryable属性是实体类型,或者在数据上下文类型上指定IgnoreProperties属性以忽略此属性.请参阅服务器日志以获取更多详 异常堆栈跟踪是:

在System.Data.Services.Providers.ReflectionServiceProvider.PopulateMetadata(ProviderMetadataCacheItem metadataCacheItem)处于System.Data.Services.DataService的System.Data.Services.Providers.BaseServiceProvider.LoadMetadata(Boolean skipServiceOperations)1.CreateInternalProvider(Object dataSourceInstance) at System.Data.Services.DataService1.CreateMetadataAndQueryProviders(IDataServiceMetadataProvider&metadataProviderInstance,IDataServiceQueryProvider&queryProviderInstance,对象&dataSourceInstance,布尔逻辑isInternallyCreatedProvider)在System.Data.Services.DataService 1.CreateProvider() at System.Data.Services.DataService1.HandleRequest()在System.Data.Services.DataService`1.ProcessRequestForMessage(流消息体)在SyncInvokeProcessRequestForMessage(对象,对象[],在系统对象[]) System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc&rpc)at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc&rpc)中的.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance,Object [] inputs,Object []&outputs) )在System.ServiceModel.Dispatcher.Immuta 位于System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc&rpc)的System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc&rpc)上的bleDispatchRuntime.ProcessMessage41(MessageRpc&rpc),位于System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc&rpc)at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc&RPC)在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11在System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1在System.ServiceModel.Dispatcher.MessageRpc(MessageRpc&RPC)(MessageRpc&RPC).进程(Boolean isOperationContextSet)

这是我的WCF数据服务:WcfDataService1.svc

namespace AddProjectService
{
 public class WcfDataService1 : DataService<AddProjectModel>
 {
    // 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("*", EntitySetRights.AllRead);
        config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);
        config.DataServiceBehavior.MaxProtocolVersion …
Run Code Online (Sandbox Code Playgroud)

wcf entity-framework odata

8
推荐指数
1
解决办法
6688
查看次数

标签 统计

entity-framework ×1

odata ×1

wcf ×1