Serialisieren nHibernate Abfrage zur JSON

Sich In Fluent nHibernate, ich entdeckte einen möglichen Schutzschalter für die Verwendung...

Angesichts der folgenden POCO-code.

public class Customer
{
   public virtual int Id { get; set; }
   public virtual string Name { get; set; }
   public virtual Details Details { get; set; }
}

public class Details
{
  public virtual int Id { get; set; }
  public virtual IList<Orders> Orders { get; set; }
}

public class CustomerMap : ClassMap<Customer>
{
 //perform mapping
}
public class DetailsMap : ClassMap<Details>
{
 //perform mapping
}

Ich geladen ASP.NET MVC und versuchten mit Json-Serialisierung.

using System.Web.Script.Serialization;

    public static partial class JsonExtensions
    {
        public static string ToJson(this object item)
        {
            return new JavaScriptSerializer().Serialize(item);
        }
    }

Und Siehe, wenn ich an eine Abfrage aus meiner nHibernate Kontext der ToJson Methode, ich bekam eine Fehlermeldung!

Einen Zirkelbezug wurde erkannt, während der Serialisierung ein Objekt des Typs " System.Reflexion.RuntimeModule'.

Scheint es, um dies zu tun, ob ich ziehen Sie ein einzelnes Objekt oder eine Liste von Objekten, ..oder etwas für diese Angelegenheit. Ich habe sogar versucht die Kennzeichnung meiner Klassen als [Serializable] mit dem gleichen Ergebnis. Dies geschieht nicht mit der exakt gleichen Klassen mit dem Microsoft Entity Framework Code-Only-Ansatz.

Kann ich nicht Deserialisieren nHibernate DTOs in JSON?

Hinzufügen weiterer code für die Prüfung.

        using (var session = sessionFactory.OpenSession())
        {
            using (var transaction = session.BeginTransaction())
            {
                var customers= session.CreateCriteria(typeof(Customer)).List<Customer>();

                foreach (var customer in customers)
                {
                    Console.WriteLine(customer.ToJson());
                }
                Console.ReadLine();
            }
        }
InformationsquelleAutor Ciel | 2010-11-17
Schreibe einen Kommentar