Serialization Breeze-保存实体和关联

Serialization Breeze-保存实体和关联,serialization,breeze,Serialization,Breeze,试图在一个请求中保存实体及其关联时遇到问题 我正在努力做到以下几点: var myModel = manager.createEntity('MyModel', { type: 1, attributes: [ { name: 'one', value: '1', active: true }, { name: 'two', value: '2', active: true }

试图在一个请求中保存实体及其关联时遇到问题

我正在努力做到以下几点:

   var myModel = manager.createEntity('MyModel', {
            type: 1,
            attributes: [
                { name: 'one', value: '1', active: true },
                { name: 'two', value: '2', active: true }
            ]
    });
    manager.addEntity(myModel);
    manager.saveChanges().then(function(response) {}).fail(function(e){
        console.log(e.message)
    });
在.NET MVC控制器上,我有如下内容:

[HttpPost]
public SaveResult SaveChanges(JObject saveBundle)
{
    var rtn = _contextProvider.SaveChanges(saveBundle);
    return rtn;
}
在序列化
rtn
变量并将其返回给客户机之前,一切都可以正常工作。我得到以下错误:

exceptionMessage: "The 'ObjectContent`1' type failed to serialize the response body for content type 'application/json; charset=utf-8'."
exceptionType: "System.InvalidOperationException"
innerException: {message: "An error has occurred.",…}
exceptionMessage: "Self referencing loop detected for property 'myModel' with type 'MyApp.Models.MyModel'. Path 'entities[0].attributes[0]'."
exceptionType: "Newtonsoft.Json.JsonSerializationException"
message: "An error has occurred."
stackTrace: "   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.CheckForCircularReference(JsonWriter writer, Object value, JsonProperty property, JsonContract contract, JsonContainerContract containerContract, JsonProperty containerProperty)
↵   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.CalculatePropertyValues(JsonWriter writer, Object value, JsonContainerContract contract, JsonProperty member, JsonProperty property, JsonContract& memberContract, Object& memberValue)
↵   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
↵   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty)
↵   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
↵   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty)
↵   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
↵   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty)
↵   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
↵   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty)
↵   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
↵   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty)
↵   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType)
↵   at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType)
↵   at Newtonsoft.Json.JsonSerializer.Serialize(JsonWriter jsonWriter, Object value)
↵   at System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.WriteToStream(Type type, Object value, Stream writeStream, Encoding effectiveEncoding)
↵   at System.Net.Http.Formatting.JsonMediaTypeFormatter.WriteToStream(Type type, Object value, Stream writeStream, Encoding effectiveEncoding)
↵   at System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.WriteToStream(Type type, Object value, Stream writeStream, HttpContent content)
↵   at System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.WriteToStreamAsync(Type type, Object value, Stream writeStream, HttpContent content, TransportContext transportContext, CancellationToken cancellationToken)
↵--- End of stack trace from previous location where exception was thrown ---
↵   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
↵   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
↵   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
↵   at System.Web.Http.WebHost.HttpControllerHandler.<WriteBufferedResponseContentAsync>d__1b.MoveNext()"
message: "An error has occurred."
stackTrace: null
exceptionMessage:“'ObjectContent'1'类型未能序列化内容类型'application/json;charset=utf-8'的响应正文。”
异常类型:“System.InvalidOperationException”
innerException:{消息:“发生错误。”,…}
exceptionMessage:“检测到类型为“MyApp.Models.myModel.Path”的属性“myModel”的自引用循环实体[0]。属性[0]”
exceptionType:“Newtonsoft.Json.JsonSerializationException”
消息:“发生错误。”
stackTrace:“位于Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.CheckForCircularReference(JsonWriter编写器、对象值、JsonProperty属性、JsonContract合同、JsonContainerContract容器合同、JsonProperty容器属性)
↵   位于Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.CalculatePropertyValues(JsonWriter编写器、对象值、JsonContainerContract、JsonProperty成员、JsonProperty属性、JsonContract和memberContract、对象和成员值)
↵   位于Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter编写器、对象值、JsonObjectContract契约、JsonProperty成员、JsonContainerContract集合契约、JsonProperty容器属性)
↵   位于Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializationValue(JsonWriter编写器、对象值、JsonContract valueContract、JsonProperty成员、JsonContainerContract containerContract、JsonProperty containerProperty)
↵   位于Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializationList(JsonWriter编写器、IEnumerable值、JsonArrayContract契约、JsonProperty成员、JsonContainerContract集合契约、JsonProperty容器属性)
↵   位于Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializationValue(JsonWriter编写器、对象值、JsonContract valueContract、JsonProperty成员、JsonContainerContract containerContract、JsonProperty containerProperty)
↵   位于Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter编写器、对象值、JsonObjectContract契约、JsonProperty成员、JsonContainerContract集合契约、JsonProperty容器属性)
↵   位于Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializationValue(JsonWriter编写器、对象值、JsonContract valueContract、JsonProperty成员、JsonContainerContract containerContract、JsonProperty containerProperty)
↵   位于Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializationList(JsonWriter编写器、IEnumerable值、JsonArrayContract契约、JsonProperty成员、JsonContainerContract集合契约、JsonProperty容器属性)
↵   位于Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializationValue(JsonWriter编写器、对象值、JsonContract valueContract、JsonProperty成员、JsonContainerContract containerContract、JsonProperty containerProperty)
↵   位于Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter编写器、对象值、JsonObjectContract契约、JsonProperty成员、JsonContainerContract集合契约、JsonProperty容器属性)
↵   位于Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializationValue(JsonWriter编写器、对象值、JsonContract valueContract、JsonProperty成员、JsonContainerContract containerContract、JsonProperty containerProperty)
↵   位于Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.serializate(JsonWriter JsonWriter,对象值,类型objectType)
↵   位于Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter JsonWriter,对象值,类型objectType)
↵   在Newtonsoft.Json.JsonSerializer.Serialize(JsonWriter JsonWriter,对象值)
↵   位于System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.WriteToStream(类型类型、对象值、流writeStream、编码有效编码)
↵   位于System.Net.Http.Formatting.JsonMediaTypeFormatter.WriteToStream(类型类型、对象值、流writeStream、编码有效编码)
↵   位于System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.WriteToStream(类型类型、对象值、流writeStream、HttpContent)
↵   位于System.Net.Http.Formatting.BaseJsonMediaTypeFormatter.WriteToStreamAsync(类型类型、对象值、流writeStream、HttpContent内容、TransportContext TransportContext、CancellationToken CancellationToken)
↵--- 来自引发异常的上一个位置的堆栈结束跟踪---
↵   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)
↵   在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中
↵   在System.Runtime.CompilerServices.TaskAwaiter.GetResult()中
↵   在System.Web.Http.WebHost.HttpControllerHandler.d_u1b.MoveNext()中
消息:“发生错误。”
stackTrace:null
这是因为子
属性
具有对其父属性的引用,并且由于父属性包含它们,因此父属性最终具有循环引用

我原以为微风可以解决这个问题,但也许不行


我做错什么了吗?

别理我!我错过了[BreezeController]的装饰