2010-07-14 31 views
0

我試圖反序列化JSON我正在從外部源到實體框架的實體類使用下面的代碼獲得反序列化JSON到的EntityFramework:異常,同時試圖使用JavaScriptSerializer

var serializer = new JavaScriptSerializer(); 
IList<Feature> obj = serializer.Deserialize<IList<Feature>>(json); 

以下異常拋出:

'System.Collections.Generic.List'類型的對象1[JustTime.Task]' cannot be converted to type 'System.Data.Objects.DataClasses.EntityCollection 1 [JustTime.Task]'。

我的模型很簡單:Feature類與Tasks類具有一對多的關係。問題似乎是反序列化器試圖創建一個通用List來保存任務集合而不是EntityCollection。

我試過實現一個JavaScriptConverted,它將處理System.Collections.Generic.List,但它並沒有被解串器調用。

+0

您正在使用哪個版本的.NET?另外,如果您將「assjment」移除到「obj」,會發生什麼情況? – 2010-07-14 19:37:46

+0

我正在使用.net v4。在反序列化一個要素的任務列表時,去除賦值並不能解決反序列化程序內發生的異常。 – Barak 2010-07-15 20:28:36

+0

請查看以下鏈接: - http://stackoverflow.com/questions/2002940/json-and-circular-reference-exception - http://stackoverflow.com/questions/5588143/ef- 4-1-code-first-json-circular-reference-serialization-error – Korayem 2012-02-02 20:04:31

回答

0

您無法直接將列表分配給EF集合。你必須添加到它。所以反序列化到POCO然後複製。

+0

這顯然是簡單的解決方法,但需要我複製整個對象模型以避開一個小技術問題,而不是我最喜歡的方法的東西。 – Barak 2010-07-15 20:29:53

相關問題