4

我得到的错误似乎来自 Structs.tt 文件。我正在使用 Northwind 数据库并且仅使用 Products 表(我排除了所有其他表)。我返回 Json(Product.All())。

这是错误:

序列化“SubSonic.Schema.DatabaseColumn”类型的对象时检测到循环引用。这是堆栈跟踪:

用户代码未处理 System.InvalidOperationException 消息="在序列化“SubSonic.Schema.DatabaseColumn”类型的对象时检测到循环引用。" Source="System.Web.Extensions" StackTrace:位于 System.Web.Script.Serialization.JavaScriptSerializer 的 System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat)。 System.Web.Script.Serialization.JavaScriptSerializer.SerializeCustomObject(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat) 在 System.Web 的 SerializeValue(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse, SerializationFormat serializationFormat)。脚本。

4

2 回答 2

16

这很容易解决。您只需将 ScriptIgnore 属性添加到 ActiveRecord.tt 文件中的几个方法。以下是我所做的更改。

        [ScriptIgnore]
    public IList<IColumn> Columns{
        get{
            return tbl.Columns;
        }
    }

注意:我还将属性添加到以下方法中,但我不知道您的情况是否需要它

        [ScriptIgnore]
    public IQueryable<<#=fk.OtherClass #>> <#=propName #>
    {
        get
        {

              var repo=<#=Namespace #>.<#=fk.OtherClass#>.GetRepo();
              return from items in repo.GetAll()
                   where items.<#=CleanUp(fk.OtherColumn)#> == _<#=CleanUp(fk.ThisColumn)#>
                   select items;
        }
    }
于 2009-09-16T15:05:02.510 回答
5

似乎我们对序列化有问题:)。您能否将此作为问题添加到我们的列表中?我真的很感激。

于 2009-07-28T16:55:48.893 回答