2011-03-29 16 views
5

Veritabanını açığa çıkarmak için bir WCF Veri Hizmeti geliştiriyorum. Ben masalardan birinde (o 'Foo' olarak adlandırdığımız) erişim sağlamak istiyoruz, bu yüzden benim DatabaseService.svc.cs arasında InitializeService yönteminde bu koyun: hizmet başlatıldığındaWCF Veri Hizmetleri hatası "Belirtilen ad 'Foo' varlık kümelerinde bulunamadı"

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

Ancak, bir ArgumentException atar ileti "Foo 'adı verilen varlık kümesinde bulunamadı."

tablo bu ad, söz ve yazım doğru ile .edmx dosyasında kesinlikle. Böyle, .Designer.cs dosyada da var:

public class FooDatabaseService : DataService<FooDBEntities> 

cevap

5

Eğer tam adını kullanarak denediniz:

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

hizmet sınıfı kendisi olarak ilan edilir?

+0

Evet, kombinasyonları 'FooDB.Foo',' FooDB.dbo.Foo', 'FooDBModel.Foo' ve' FooDBEntities.Foo' denedim. –

+0

Kodda kullanılan gerçek ad alanlarından herhangi biri (NamespaceName = ""). Ayrıca, modeliniz ve hizmetiniz aynı projede mi? – CodingGorilla

+0

Evet, bunlar koddaki ad alanlarıdır. .svc ve .edmx'in ikisi de aynı projede (dll) ve ayrı bir Windows Hizmet projesinde "DataServiceHost" ile barındırılıyor. –

İlgili konular