2011-07-02 50 views
1

我正在使用具有一些循環引用的遺留數據庫。當我從SL4客戶端使用我的Ria服務時。 (通過我的ORM映射器生成實體)我收到以下錯誤:WCF Ria服務和循環引用

嘗試序列化參數http://tempuri.org/:GetPublicationPagesResult時發生錯誤。 InnerException消息是'類型爲'xxx.Entities.TblPublicationPage'的對象圖包含週期,如果禁用參考跟蹤,則不能序列化。

[Query] 
public IQueryable<TblPublicationPage> GetPublicationPages(int publicationId) 
{ 
    return this.PublicationLogic.Value.GetPublicationPages(publicationId); 
} 

我知道如何通過CyclicReferencesAware屬性或IsRefence = true爲普通的WCF啓用它。但我無法弄清楚如何使用WCF Ria Services做到這一點。

+0

是否使用ORM成長家庭? –

+0

沒有來自Telerik的OpenAccess。作爲ADO.net服務公開,我沒有循環問題,但對於SL,我更喜歡WCF RIA – krikke999

回答

0

我現在明白了WCF RIA服務更好,我只是試圖修復它像我在平原WCF做到這一點,並添加了metadataclass我生成的實體:在這一點上

[DataContract(IsReference = true)] 
[DataServiceKey("PublicationPageID")] 
[DebuggerDisplay("PublicationPageID: {PublicationPageID}")] 
[MetadataType(typeof(TblPublicationPageMetadata))] 
public partial class TblPublicationPage 
{ 
    internal sealed class TblPublicationPageMetadata 
    { 
     [DataMember] 
     public int PublicationPageID { get; set; } 
    } 
} 

唯一的缺點是我有裝飾每個屬性與[數據成員]屬性的元數據類...

0

使用[CyclicReferencesAware(真)]