SubSonic 3.0.0.2 Des Structures.tt

L'erreur que je reçois semble sortir de leurs Structures.tt fichier. Je suis à l'aide de la base de données Northwind et uniquement à l'aide de la table Produits (j'exclus tous les autres tableaux). J'retour Json(Produit.Tous les()).

Voici l'erreur:

Une référence circulaire a été détecté
lors de la sérialisation d'un objet de type
'Subsonique.Schéma.DatabaseColumn'.Voici
la Trace de la Pile:

Système.InvalidOperationException a été
non gérée par le code de l'utilisateur Message="Une
référence circulaire a été détectée pendant l'
la sérialisation d'un objet de type
'Subsonique.Schéma.DatabaseColumn'."
Source="Le Système De.Web.Les Extensions"
StackTrace:
Système.Web.Script.La sérialisation.JavaScriptSerializer.SerializeValueInternal(Objet
o, StringBuilder sb, Int32 profondeur,
Hashtable objectsInUse,
SerializationFormat
serializationFormat) à
Système.Web.Script.La sérialisation.JavaScriptSerializer.SerializeValue(Objet
o, StringBuilder sb, Int32 profondeur,
Hashtable objectsInUse,
SerializationFormat
serializationFormat) à
Système.Web.Script.La sérialisation.JavaScriptSerializer.SerializeCustomObject(Objet
o, StringBuilder sb, Int32 profondeur,
Hashtable objectsInUse,
SerializationFormat
serializationFormat) à
Système.Web.Script.La sérialisation.JavaScriptSerializer.SerializeValueInternal(Objet
o, StringBuilder sb, Int32 profondeur,
Hashtable objectsInUse,
SerializationFormat
serializationFormat) à
Système.Web.Script.La sérialisation.JavaScriptSerializer.SerializeValue(Objet
o, StringBuilder sb, Int32 profondeur,
Hashtable objectsInUse,
SerializationFormat
serializationFormat) à
Système.Web.Script.La sérialisation.JavaScriptSerializer.SerializeCustomObject(Objet
o, StringBuilder sb, Int32 profondeur,
Hashtable objectsInUse,
SerializationFormat
serializationFormat) à
Système.Web.Script.La sérialisation.JavaScriptSerializer.SerializeValueInternal(Objet
o, StringBuilder sb, Int32 profondeur,
Hashtable objectsInUse,
SerializationFormat
serializationFormat) à
Système.Web.Script.La sérialisation.JavaScriptSerializer.SerializeValue(Objet
o, StringBuilder sb, Int32 profondeur,
Hashtable objectsInUse,
SerializationFormat
serializationFormat) à
Système.Web.Script.La sérialisation.JavaScriptSerializer.SerializeEnumerable(IEnumerable
énumérable, StringBuilder sb, Int32
profondeur de la table de hachage objectsInUse,
SerializationFormat
serializationFormat) à
Système.Web.Script.La sérialisation.JavaScriptSerializer.SerializeValueInternal(Objet
o, StringBuilder sb, Int32 profondeur,
Hashtable objectsInUse,
SerializationFormat
serializationFormat) à
Système.Web.Script.La sérialisation.JavaScriptSerializer.SerializeValue(Objet
o, StringBuilder sb, Int32 profondeur,
Hashtable objectsInUse,
SerializationFormat
serializationFormat) à
Système.Web.Script.La sérialisation.JavaScriptSerializer.SerializeCustomObject(Objet
o, StringBuilder sb, Int32 profondeur,
Hashtable objectsInUse,
SerializationFormat
serializationFormat) à
Système.Web.Script.La sérialisation.JavaScriptSerializer.SerializeValueInternal(Objet
o, StringBuilder sb, Int32 profondeur,
Hashtable objectsInUse,
SerializationFormat
serializationFormat) à
Système.Web.Script.La sérialisation.JavaScriptSerializer.SerializeValue(Objet
o, StringBuilder sb, Int32 profondeur,
Hashtable objectsInUse,
SerializationFormat
serializationFormat) à
Système.Web.Script.La sérialisation.JavaScriptSerializer.SerializeEnumerable(IEnumerable
énumérable, StringBuilder sb, Int32
profondeur de la table de hachage objectsInUse,
SerializationFormat
serializationFormat) à
Système.Web.Script.La sérialisation.JavaScriptSerializer.SerializeValueInternal(Objet
o, StringBuilder sb, Int32 profondeur,
Hashtable objectsInUse,
SerializationFormat
serializationFormat) à
Système.Web.Script.La sérialisation.JavaScriptSerializer.SerializeValue(Objet
o, StringBuilder sb, Int32 profondeur,
Hashtable objectsInUse,
SerializationFormat
serializationFormat) à
Système.Web.Script.La sérialisation.JavaScriptSerializer.SerializeCustomObject(Objet
o, StringBuilder sb, Int32 profondeur,
Hashtable objectsInUse,
SerializationFormat
serializationFormat) à
Système.Web.Script.La sérialisation.JavaScriptSerializer.SerializeValueInternal(Objet
o, StringBuilder sb, Int32 profondeur,
Hashtable objectsInUse,
SerializationFormat
serializationFormat) à
Système.Web.Script.La sérialisation.JavaScriptSerializer.SerializeValue(Objet
o, StringBuilder sb, Int32 profondeur,
Hashtable objectsInUse,
SerializationFormat
serializationFormat) à
Système.Web.Script.La sérialisation.JavaScriptSerializer.Serialize(Objet
obj, StringBuilder de sortie,
SerializationFormat
serializationFormat) à
Système.Web.Script.La sérialisation.JavaScriptSerializer.Serialize(Objet
obj, SerializationFormat
serializationFormat) à
Système.Web.Script.La sérialisation.JavaScriptSerializer.Serialize(Objet
obj) à
Système.Web.Mvc.JsonResult.ExecuteResult(ControllerContext
contexte) à
Système.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext
controllerContext, ActionResult
actionResult) à
Système.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass11.b__e()
au
Système.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter
filtre, ResultExecutingContext
preContext, Func1 suite) au
Système.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass11.<>c__DisplayClass13.b__10()
au
Système.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext
controllerContext, IList1 filtres,
ActionResult actionResult) à
Système.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext
controllerContext, Chaîne actionName)
au
Système.Web.Mvc.Le contrôleur.ExecuteCore()
au
Système.Web.Mvc.ControllerBase.Execute(RequestContext
requestContext) à
Système.Web.Mvc.ControllerBase.Système.Web.Mvc.IController.Execute(RequestContext
requestContext) à
Système.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase
httpContext) à
Système.Web.Mvc.MvcHandler.ProcessRequest(HttpContext
httpContext) à
Système.Web.Mvc.MvcHandler.Système.Web.IHttpHandler.ProcessRequest(HttpContext
httpContext) à
Système.Web.Mvc.MvcHttpHandler.VerifyAndProcessRequest(IHttpHandler
httpHandler, HttpContextBase
httpContext) à
Système.Web.Le routage.UrlRoutingHandler.ProcessRequest(HttpContextBase
httpContext) à
Système.Web.Le routage.UrlRoutingHandler.ProcessRequest(HttpContext
httpContext) à
Système.Web.Le routage.UrlRoutingHandler.Système.Web.IHttpHandler.ProcessRequest(HttpContext
contexte) à
ExtJSNorthwind._Default.Page_Load(Object
sender, EventArgs e) dans
C:\Applications\Pointes\ExtJSNorthwind\ExtJSNorthwind\Par Défaut.aspx.cs:ligne
18 à
Système.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr
fp, l'Objet o, t Objet, EventArgs e)
au
Système.Web.Util.CalliEventHandlerDelegateProxy.Rappel(Objet
sender, EventArgs e) à
Système.Web.L'INTERFACE utilisateur.De contrôle.OnLoad(EventArgs
e) à
Système.Web.L'INTERFACE utilisateur.De contrôle.LoadRecursive()
au
Système.Web.L'INTERFACE utilisateur.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean
includeStagesAfterAsyncPoint)
InnerException:

C'est le message de l'exception: Une référence circulaire a été détecté lors de la sérialisation d'un objet de type " Subsonique.Schéma.DatabaseColumn'.
Ne sais pas si cela va aider à résoudre le problème, mais comme je l'ai creusé plus profondément dans l'exception que j'ai rencontré ce: Message: "Méthode ne peut être appelée que sur un Type pour le Type.IsGenericParameter est vrai." FullName: Système.Web.Script.La sérialisation.JavaScriptSerializer
Cela semble très similaire à stackoverflow.com/questions/1153385/...
La lecture de ce post, la réponse a été de sélectionner des zones spécifiques pour le retour. Mon problème est que j'ai besoin de la référence du produit et le code ne fonctionne pas lorsqu'il atteint la GetKeyColumn() la méthode de ActiveRecord.cs où elle retourne la référence du produit. Les points d'arrêt sur les Structures.cs de la colonne ProductID sont de passage.
Le même son que mon problème j'ai supposé que la circulaire de référence était le fait que nous avons IQueryable clé étrangère références et il a été coincé dans une boucle lors de la sérialisation? Je l'ai changé pour renvoyer uniquement les colonnes spécifiques et cela a fonctionné.

OriginalL'auteur kntcnrg | 2009-07-28