我使用以下GettingStarted创建了第一个带有数据库连接的WCF数据服务。 https://msdn.microsoft.com/en-us/data/gg192995.aspx
我直到第13步,但我没有得到任何xml提要。相反,我收到以下消息(不幸的是德语):
Auf dem Server ist bei der Verarbeitung der Anforderung ein Fehler aufgetreten。 Die Ausnahmemeldung lautet'Ein Ausdruck vom Typ “System.Data.Entity.Core.Objects.ObjectContext”kannnichtfürden Rückgabetyp“System.Data.Objects.ObjectContext”verwendet werden。'。 AusführlichereInformationenfinden Sie in den Serverprotokollen。死 Ausnahmestapelüberwachunglautetfolgendermaßen:
bei System.Linq.Expressions.Expression.ValidateLambdaArgs(Type delegateType,Expression& body,ReadOnlyCollection
1 parameters) bei System.Linq.Expressions.Expression.Lambda[TDelegate](Expression body, String name, Boolean tailCall, IEnumerable
1参数)bei System.Data.Services.Providers.DbContextHelper.CreateDbContextAccessor(类型 类型)bei System.Data.Services.Providers.DbContextHelper.GetDbContextAccessor(类型 类型)bei System.Data.Services.DataService1.CreateMetadataAndQueryProviders(IDataServiceMetadataProvider& metadataProviderInstance, IDataServiceQueryProvider& queryProviderInstance, Object& dataSourceInstance, Boolean& isInternallyCreatedProvider) bei System.Data.Services.DataService
1.CreateProvider()bei System.Data.Services.DataService1.HandleRequest() bei System.Data.Services.DataService
1.ProcessRequestForMessage(流 messageBody)bei SyncInvokeProcessRequestForMessage(Object,Object [] ,Object [])bei System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(对象 实例,对象[]输入,对象[]&输出)bei System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc&安培; rpc)bei System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc&安培; rpc)bei System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc&安培; rpc)bei System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc&安培; rpc)bei System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc&安培; rpc)bei System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc&安培; rpc)bei System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc&安培; rpc)bei System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc&安培; rpc)bei System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc&安培; rpc)bei System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
由于SQL Server,IIS或Visual Studio中的较新版本,它可能无法正常工作吗?
也许有些命名空间问题?
错误消息指出System.Data.Entity.Core.Objects.ObjectContext无法转换为System.Data.Objects.ObjectContext。
以下是WcfDataService1.svc.cs文件中的代码
//------------------------------------------------------------------------------
// <copyright file="WebDataService.svc.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Data.Services;
using System.Data.Services.Common;
using System.Linq;
using System.ServiceModel.Web;
using System.Web;
using System.ServiceModel;
namespace RestWcfService
{
[ServiceBehavior(IncludeExceptionDetailInFaults = true)]
public class WcfDataService1 : DataService<AdventureWorksLTEntities>
{
// 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.UseVerboseErrors = true;
config.SetEntitySetAccessRule("MyEntityset", EntitySetRights.AllRead);
config.SetServiceOperationAccessRule("MyServiceOperation", ServiceOperationRights.All);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
}
}
}
答案 0 :(得分:0)
从旧版本的Entity Framework升级到版本6时,这是一个常见问题.System.Data.Objects.ObjectContext不是EF 6的一部分。最好的办法是删除软件包并重新安装。
替换System.Data.Objects.ObjectContext =&gt; System.Data.Entity.Core.Objects.ObjectContext