Ce problème apparaît autour du réseau depuis des années, je n'ai pas encore trouvé de bonne solution. Le sujet passe une liste d'objets qui ont référence circulaire à l'intérieur les peuplées par NHibernate (avec ou sans charge paresseux - certains sites SAIS il ne peut pas être fait avec paresseux)Référence circulaire, NHibernate et WCF
Voici l'exemple:
[DataContract]
class Person
{
[DataMemeber]
string Name
[DateMember]
IList<Child> myChilds;
}
[DataContract]
class Child
{
[DataMemeber]
string Name
[DateMember]
Person Father
}
Lorsque je tente d'obtenir toutes les personnes dans mon DB: le code serveur sera:
ICriteria crit = session.CreateCriteria(typeof(Person)));
IList<Base> queryResult = crit.List<Base>();
-je obtenir un bon résultat sur le serveur Side- une liste de toutes les personnes, et à l'intérieur chaque personne Je reçois une liste de tous les fils (et à l'intérieur de chaque fils - je reçois un objet de la personne qui a à l'intérieur une liste de ses fils ect ....)
Maintenant, essayant d'obtenir cette liste sur WCF fautes le canal. (si je supprime l'objet Person de l'enfant - cela fonctionne bien).
Solutions J'ai essayé et n'ai pas résolu ce problème: Ajout de IsReference = true à [DataContract] - n'a pas aidé. Déplacer tout le mappage à not.Lazyload() - n'a pas aidé.
Toutes les idées comment résoudre ceci sans réécrire WCF?
Merci, Dani
Le lien est cassé pour le moment. – Restuta
Lien est toujours disparu - 404. – ssmith