2010-06-22 5 views
1

HIcirculaire Référence- LINQ to SQL

J'utilise telerik grille mvc ajax avec fixation

<%Html.Telerik().Grid<UserManagement.Models.setupEmployee>() 
     .Name("setupEmployees") 
      .DataBinding(dataBinding => dataBinding 
       //Ajax binding 
       .Ajax() 
       //The action method which will return JSON 
         .Select("_AjaxBindingEmployee", "UM") 

      ). 
      Columns(colums => 
      { 
       colums.Bound(o => o.EmployeeName).Title("Name"); 
       colums.Bound(o => o.setupDesignation.Title).Title("Designation"); 
       colums.Bound(o => o.Gender); 
       colums.Bound(o => o.DOB); 
       colums.Bound(o => o.EmployeeID).Format( 
       %><%Html.ActionLink("Edit", "Edit", new { Id = "{0}" }).ToString()).Encoded(false); 
      }) 
     .Pageable() 
     .Sortable() 
     .Filterable() 
     .PrefixUrlParameters(false)   
     .Render(); 
    %> 

lorsque je tente de remplir la grille avec

return db.setupEmployees 

je reçois l'erreur suivante

Une référence circulaire a été détectée lors de la sérialisation d'un objet de type. Comme j'ai relation de cette table avec d'autres tables. Pour éviter cela, je peux avoir deux options soit j'utilise viewmodel ou désactiver les relations qui n'est pas possible. Toute autre sugession de votre côté

Cordialement

Répondre

1

Les associations créées dans le concepteur LinqToSql sont sous votre contrôle.

Vous pouvez les supprimer (ne change pas la base de données).

Vous pouvez les modifier afin qu'ils génèrent des propriétés à simple face au lieu de propriétés à double face (ne modifie pas la base de données).

Vous pouvez les modifier afin qu'ils ne génèrent aucune propriété (ne change pas de base de données).

Le fichier du concepteur est un fichier de mappage, il ne modifie pas la base de données.

+0

merci pour la réponse, Oui c'est un fichier de mapping et ne change pas la base de données mais j'ai besoin d'exploiter les collections en même temps. corrigez-moi si je me trompe je pense que si je supprime l'association si je ne peux pas faire "o => o.setupDesignation.Title" dans mon code ci-dessus – Tassadaque

+0

Vous pouvez les définir pour générer uniquement la propriété parent ou seulement propriété d'enfant. De cette façon, ils ne sont pas circulaires. –