2009-03-06 24 views
18

ado.net veri hizmetleri ile linq-to-sql kullanırken garip bir hata ile karşılaşıyorum. Uzak veritabanına bağlanan basit bir silverlight uygulamasına sahibim. İlk olarak linq-to-sql sınıfını ekledim ve bir tabloyu tasarımcıya sürükledim. Sonra bir ADO.NET Veri Hizmeti ekledim, DataService referansını L2S Veri içeriğine işaret edecek şekilde güncelledim.ADO.NET Veri Hizmetleri Linq-to-SQL ile

Sorunsuz bir şekilde derlenmiş.

IE hizmet açtığınızda ben veri hizmetine aşağıdaki öznitelik yüzden hemen bir hata alıyorum:

istisna: Bu ayrıntılı hata iletisi getirir

[System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults = true)] 

ileti, 'DataClasses1DataContext' veri bağlamında ', öğe türü bir varlık türü olmayan bir üst IQueryable özelliği' table1 'var. IQueryable mülkiyet varlık türü olduğundan emin olun veya IgnoreProperties bu özelliği

bu ben L2S tasarımcı kullanmak herhangi veritabanı tablosu olur

görmezden veri bağlam türüne özelliği de belirtebilirsiniz!

Bu hata nedir ve neden alıyorum?

+0

Son noktaların her birine http: // localhost/{ServiceName}/{EndPointName} – jdiaz

cevap

21

Sınıflarınızı DataServiceKey özniteliği ile dekore etmeniz gerekir.

Marc'ın blogu here ve bir MSDN blogu here hakkında daha fazla ayrıntı (sonraki birçok ilişkiden bahseder, ancak DatServiceKey özniteliğini kapsar).

+0

tarafından erişilebilen çok şey açıklandı ancak neden bana XML biçimindeki varlıkları göstermiyor? Sadece DEFAULT tablo1 diyor. Hatta config.SetEntitySetAccessRule ("table1", EntitySetRights.All) kullandım; – jdiaz

+0

Ayrıca, tabloda ana anahtar kümesi yoksa DataServiceKey olarak hangi özelliğin ayarlanacağını nasıl bilebilirim? – jdiaz