0

我已将名为 test.svc 的 WCF 数据服务 (v5.6) 添加到我的 MVC 应用程序的根目录,但我似乎无法弄清楚我的路由以便我可以访问它。以下是当我访问 http://test.svc 以及路由代码和 test.svc 文件时在浏览器中返回的结果。

路由表条目(我添加的第一个路由规则):

routes.IgnoreRoute("{resource}.svc/{*pathInfo}");


[System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults = true)]
public class test : DataService<MyEntities>
{
    // 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.
        config.SetEntitySetAccessRule("*", EntitySetRights.All);
        config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);
        config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;

        config.UseVerboseErrors = true;
    }

浏览器显示错误:

服务器在处理请求时遇到错误。异常消息是“'System.Data.Entity.Core.Objects.ObjectContext' 类型的表达式不能用于返回类型'System.Data.Objects.ObjectContext'”。有关更多详细信息,请参阅服务器日志。异常堆栈跟踪是:

在 System.Linq.Expressions.Expression.ValidateLambdaArgs(类型 delegateType,Expression& 正文,ReadOnlyCollection 1 parameters) at System.Linq.Expressions.Expression.Lambda[TDelegate](Expression body, String name, Boolean tailCall, IEnumerable1 参数)在 System.Linq.Expressions.Expression.Lambda[TDelegate](表达式正文,布尔 tailCall,IEnumerable 1 parameters) at System.Linq.Expressions.Expression.Lambda[TDelegate](Expression body, ParameterExpression[] parameters) at System.Data.Services.Providers.DbContextHelper.CreateDbContextAccessor(Type type) at System.Data.Services.Providers.DbContextHelper.GetDbContextAccessor(Type type) at System.Data.Services.Providers.DbContextHelper.IsDbContextType(Type type) at System.Data.Services.DataService1.CreateMetadataAndQueryProviders(IDataServiceMetadataProvider& metadataProviderInstance,IDataServiceQueryProvider& System.Data.Services.DataService 中的 queryProviderInstance、Object& dataSourceInstance、Boolean& isInternallyCreatedProvider) 1. System.Data.Services.DataService 中的 EnsureProviderAndConfigForRequest 1.CreateProvider() at System.Data.Services.DataService()1.HandleRequest() at System.Data.Services.DataService1.ProcessRequestForMessage(Stream messageBody) at SyncInvokeProcessRequestForMessage(Object , Object[] , Object[] ) at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[] & outputs) 在 System.ServiceModel。 Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc) ) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& 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(布尔 isOperationContextSet)

4

1 回答 1

0

看起来 WCF DS 和 EF 6 是不兼容的,并且没有时间框架来说明它们何时或是否可以解决问题。

http://social.msdn.microsoft.com/Forums/en-US/4aa92957-22de-4445-aecd-2871982afe28/eta-on-entity-framework-version-6-provider?prof=required

于 2013-08-31T05:06:54.377 回答