C# 尝试使用JavaScriptSerializer将JSON反序列化为EntityFramework时发生异常

C# 尝试使用JavaScriptSerializer将JSON反序列化为EntityFramework时发生异常,c#,json,entity-framework,serialization,C#,Json,Entity Framework,Serialization,我正在尝试使用以下代码将从外部源获取的JSON反序列化为实体框架实体类: var serializer = new JavaScriptSerializer(); IList<Feature> obj = serializer.Deserialize<IList<Feature>>(json); 将引发以下异常: “System.Collections.Generic.List1[JustTime.Task]”类型的对象无法转换为“System.Data.O

我正在尝试使用以下代码将从外部源获取的JSON反序列化为实体框架实体类:

var serializer = new JavaScriptSerializer();
IList<Feature> obj = serializer.Deserialize<IList<Feature>>(json);
将引发以下异常:

“System.Collections.Generic.List1[JustTime.Task]”类型的对象无法转换为“System.Data.Objects.DataClasses.EntityCollection1[JustTime.Task]”类型

我的模型很简单:要素类与任务类有一对多的关系。问题似乎是反序列化程序试图创建一个通用列表来保存任务集合,而不是EntityCollection


我尝试实现一个JavaScriptConverted,它将处理System.Collections.Generic.List,但反序列化程序没有调用它。

您不能将列表直接分配给EF集合。你必须加进去。因此,反序列化到POCO,然后复制

您使用的是哪个版本的.NET?另外,如果删除对obj的分配会发生什么?我使用的是.NETV4。删除分配没有帮助,因为在反序列化功能的任务列表时,反序列化器内部会发生异常。请检查以下链接:-这显然是一个简单的解决方法,但需要复制整个对象模型,以避免一个小的技术问题,这不是我喜欢的做事方法。