WCF数据服务错误“给定名称'Foo'在实体集”

问题描述:

中找不到“我正在开发一个WCF数据服务来公开数据库。我想提供接入到一个表(称之为“富”),所以我把这个在InitializeService方法我DatabaseService.svc.cs的:WCF数据服务错误“给定名称'Foo'在实体集”

config.SetEntitySetAccessRule("Foo", EntitySetRights.AllRead); 

然而,当服务初始化它抛出同一个ArgumentException消息“在实体集中未找到给定名称'Foo'。”

该表格绝对位于带有该名称,大小写和拼写正确的.edmx文件中。这也是在.Designer.cs文件,像这样:

[EdmEntityTypeAttribute(NamespaceName="FooDBModel", Name="Foo")] 
[Serializable()] 
[DataContractAttribute(IsReference=true)] 
public partial class Foo : EntityObject 

服务类本身被声明为:

public class FooDatabaseService : DataService<FooDBEntities> 

您是否尝试过使用完全合格的名称?

+0

是的,我尝试过组合'FooDB.Foo','FooDB.dbo.Foo','FooDBModel.Foo'和'FooDBEntities.Foo'。 – 2011-03-29 15:12:32

+0

是代码中使用的任何实际名称空间(与NamespaceName =“”相对)。另外,您的模型和您的服务都在同一个项目中吗? – CodingGorilla 2011-03-29 15:16:31

+0

是的,这些是代码中的命名空间。 .svc和.edmx都在同一个项目中(一个dll),并且它在一个单独的Windows服务项目中由'DataServiceHost'托管。 – 2011-03-29 15:19:24