1
對象圖「[類型]」包含週期,並且如果參考跟蹤被禁止不能被序列化。NHibernate和WCF序列化(單向)類型
我使用NHibernate作爲我的持久層的簡單類層次結構設置。
例如:
public class Parent
{
public virtual IList<Child> Children{get;set;}
}
public class Child
{
public virtual Parent Parent{get;set;}
}
這僅僅是做一個有關孩子的單親家庭,並且通過數據庫中的外鍵被持久化。 NHibernate的部分和持久性工作得很好。通過WCF Web服務公開此關係時發生此問題。我意識到這裏有一個循環引用,並且已經閱讀了LINQ to SQL允許單向序列化的一些解決方案,但是當不使用dbml文件時無法找到解決方案。
UPDATE
另外一個問題是,它是常見的做法,以抽象的一組DTO的通過Web服務公開,而不是原來的實體?這樣就解決了系列化的問題,因爲DTO類不一定需要循環引用(因爲它們不是NHibernate的實體)。
其他更新
我碰到一個article,可能是在正確的方向。我現在正在測試這個,如果成功的話會發布(對於文章價值的緣故)。
實際上,我已經花了一整天的時間習慣了AutoMapper和一些較輕的DTO通過線路發送,而不是域實體。 – 2009-11-07 06:09:09