我有一个简单的问题。
我在visual studio 2013中创建了一个WCF数据服务5.6,并在其*.svc.cs
文件中创建了修改后的行
public class CustomdataService : DataService< /* TODO: put your data source class name here */ >
连接我的实体
public class CustomdataService : DataService< SchedulerEntities >
但是当我想在浏览器中看到该服务时,它会给我以下错误
请求错误
服务器在处理请求时遇到错误。有关详细信息,请参阅服务器日志。
实体框架只不过是一张桌子......
答案 0 :(得分:24)
实际错误可能不同。在我的情况下,我从AdventureWorks2012数据库开始时得到了相同的一般错误消息。
因此,可以通过在here中描述的服务类附加属性来看到实际问题:
[ServiceBehavior(IncludeExceptionDetailInFaults = true)]
public class WcfDataServiceAW : EntityFrameworkDataService<AdventureWorks2012Entities> { ... }
希望它有所帮助。
PS。我的错误是:
例外消息是&#39;属性&#39; SpatialLocation&#39;在类型&#39;地址&#39;是地理类型&#39;这不是受支持的原始类型。&#39;。
答案 1 :(得分:23)
似乎Entity Framework 6和WCF Data Services 5.6.0需要一些提供商一起工作,请在Using WCF Data Services 5.6.0 with Entity Framework 6+上阅读更多内容。
您只需使用NuGet Package Console Manager下载提供程序:
Install-Package Microsoft.OData.EntityFrameworkProvider -Pre
它的版本是alpha 2,所以将来搜索最终版本。然而,它对我有用。
最后,您需要使用DataService<T>
,而不是使用EntityFrameworkDataService<T>
。 T
是您实体的名称。
答案 2 :(得分:5)
根据this post,您必须更改CustomdataService
的继承类型。
替换DataService的基本类型。对于EF 5或更低版本,您的数据服务应继承自DataService,其中T是DbContext或ObjectContext。对于EF 6或更高版本,您的数据服务应继承自EntityFrameworkDataService,其中T是DbContext。有关更多详细信息,请参阅下面的DataService和EntityFrameworkDataService之间的区别。
答案 3 :(得分:0)
转到edmx,在图中删除所有表,直到剩下所需的唯一表为止, 那应该可以,不能有所有的桌子,这就是我发现的,
KT Wong