2011-07-02 18 views
1

私はいくつかの循環参照を持つレガシーデータベースを使用しています。 RiaサービスをSL4クライアントから使用すると(私の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 =真を通じて平野WCFのためにそれを有効にする方法を知っています。しかし、私はWCF Ria Servicesでこれを行う方法を理解できません。

+0

あなたはORM栽培家を使用していますか? –

+0

TelerikのOpenAccessがありません。私はADO.netのサービスとして公開されていますが、私は周期的な問題はありませんが、SLにとって私はWCF RIA – krikke999

答えて

0

私は今、私はちょうど私が平野WCFでそれを行うのと同じようにそれを修正しようとした私の生成エンティティにmetadataclassを追加し、より良いWCF RIAサービスを理解する:私は持っている。この時点で

[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; } 
    } 
} 

のみ欠点[DataMemberを]属性を持つメタデータクラス内のすべてのプロパティを飾るために...

0

使用[CyclicReferencesAware(真)]

関連する問題