0

データベースに含まれる競技のリストを表示しようとしていますが、毎回このエラーが表示されます:

2[jTableSampleDatabaseLayer.Hik.JTable.Models.Concour,VB$AnonymousType_2タイプ 'WhereSelectListIterator 8[System.String,System.Nullable 1[System.Int32],System.Nullable1[System.Int32],System.DateTime,System.Int32,System.Int32,System.String,System.Int32]]のオブジェクトのシリアル化中に循環参照が検出されました' on type 'System.Collections.Generic.IEnumerable1[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
4

0 に答える 0