作为大多数人,当将(可怕的)EF对象序列化为JSON时,我也遇到了循环引用错误的问题.执行db.Detach(efObject)有帮助 – 但我仍然像“EntityKey”那样输出垃圾.
所以我想知道是否有一个选项(通过JsConfig?)告诉序列化器通过名称(EntityKey)或类型(EntityReference< T>或EntityCollection< T>)忽略属性?
解决方法
您不应该尝试重复使用
Entity Framework types as DTO’s,因为它们是DTO设计不佳的替代品.您应该使用ServiceStack的内置TranslateTo / PopulateFrom映射器(或AutoMapper)将它们映射到特殊用途的DTO类型并返回它们.
话虽如此,请在要序列化的属性上使用IgnoreDataMember or specify DataMembers.