データベースに含まれる競技のリストを表示しようとしていますが、毎回このエラーが表示されます:
2[jTableSampleDatabaseLayer.Hik.JTable.Models.Concour,VB$AnonymousType_2
タイプ 'WhereSelectListIterator 8[System.String,System.Nullable1[System.Int32],System.Nullable
1[System.Int32],System.DateTime,System.Int32,System.Int32,System.String,System.Int32]]のオブジェクトのシリアル化中に循環参照が検出されました' on type 'System.Collections.Generic.IEnumerable
1[jTableSampleDatabaseLayer.Hik.JTable.Models.Concour]``'.
これがvbの私のコードです:
Dim x As jTableSampleDatabaseLayer.totofootEntities = _
New jTableSampleDatabaseLayer.totofootEntities
Dim dataSource = New MemoryDataSource()
Dim liste As List(Of Concour) = x.Concours.ToList()
dataSource.Concours.AddRange(liste)
''ajout
Try
Dim concours = dataSource.Concours
Return Json(New With { _
Key .Result = "OK", _
Key .Records = concours _
}, JsonRequestBehavior.AllowGet)
Catch ex As Exception
Return Json(New With { _
Key .Result = "ERROR", _
Key .Message = ex.Message _
}, JsonRequestBehavior.AllowGet)
End Try
このエラーを回避するにはどうすればよいですか?
このエラーを回避するためにコードを変更しようとしました
これでエラーは発生しなくなりましたが、すべての属性がnullに等しく、DB内の登録数が同じであるという結果が得られます
{"Result":"OK","Records":[{"numero_concours":null,"numero_etape":0,"numero_type":null,"numero_nature":null,"titre_concours":null,"date_de_sortie":" /Date(-62135596800000)/","nbre_matchs":0,"nbre_rangs":0,"Etape":null,"Nature":null,"Type":null,"Primes":[],"Rangs": [],"Recettes":[],"Rencontres":[]},{"numero_concours":null,"numero_etape":0,"numero_type":null,"numero_nature":null,"titre_concours":null," date_de_sortie":"/Date(-62135596800000)/","nbre_matchs":0,"nbre_rangs":0,"Etape":null,"Nature":null,"Type":null,"Primes":[], "Rangs":[],"Recettes":[],"Rencontres":[]}]}``'.
新しいコード:
Dim x As jTableSampleDatabaseLayer.totofootEntities = New jTableSampleDatabaseLayer.totofootEntities
Dim dataSource = New MemoryDataSource()
Dim liste As List(Of Concour) = x.Concours.ToList()
dataSource.Concours.AddRange(liste.Select(Function(p) New Concour))
''ajout
Try
Dim concours = dataSource.Concours
Return Json(New With {Key .Result = "OK", Key .Records = concours}, JsonRequestBehavior.AllowGet)
Catch ex As Exception
Return Json(New With {Key .Result = "ERROR", Key .Message = ex.Message}, JsonRequestBehavior.AllowGet)
End Try