我正嘗試使用WCF數據服務和便攜式庫中包含的POCO數據模型。服務器端使用模型沒有問題,但在客戶端,當訂閱源實現時,出現此錯誤:WCF數據服務和便攜式庫
類型爲'PortableEntities.Customers'的名稱爲'訂單'的屬性具有種類'結構',但預計會是類似'導航'
客戶端似乎無法實現未作爲DataServiceCollection(便攜式庫不可用的類型)實現的關係。
有沒有辦法使用其他ICollection類型如HashSet或List?
這裏是我的便攜式庫中的模型類(從羅斯文):
Partial Public Class Customers
Public Property ID As String
Public Property CompanyName As String
Public Property ContactName As String
Public Property ContactTitle As String
Public Property Address As String
Public Property City As String
Public Property Region As String
Public Property PostalCode As String
Public Property Country As String
Public Property Phone As String
Public Property Fax As String
Public Overridable Property Orders As ICollection(Of Orders) = New HashSet(Of Orders)
Public Overridable Property CustomerDemographics As ICollection(Of CustomerDemographics) = New HashSet(Of CustomerDemographics)
End Class
你可以分享訂單類的定義嗎?訂單是否具有ID屬性或DataServiceKey屬性?如果不這樣做,WCF數據服務會將其視爲複雜類型而不是實體類型。添加ID屬性或DataServiceKey屬性可能會有所幫助。 – Pratik
我認爲你是對的。由於便攜庫的原因,我無法使用DataServiceKey屬性,但我可以使用約定。問題是Northwind的表被命名爲Orders,並且該ID被命名爲OrderId。根據慣例,我的班級應該被命名爲Order not Orders。你能寫一個答案,以便我可以接受它嗎? –