Question

J'ai d'avoir 500 erreur interne lors de l'obtention de la réponse ajax.

Voici la fonction ajax du contrôleur:

   [GridAction]
    public ActionResult SelectItemGridAjax(int OrderID)
    {
        return View(new GridModel(ordersRepository.GetOrderItemsTK(OrderID).ToList()));
    }

est ce que le référentiel envoie:

   public IEnumerable<ItemsInOrder> GetOrderItemsTK(int OrderID)
    {
        using (var context = new techrundb())
        {
           var  result = (from p in context.ItemsInOrders.Include("Order").Where(i=>i.OrderID == OrderID) select p).ToList();
           return result;
        }
    }

Ceci est le serveur répondre:

  

L'instance ObjectContext a été   disposé et ne peut plus être utilisé pour   opérations qui nécessitent une connexion.

Il y a une « référence circulaire » entre l'ordre et ItemsInOrder. Mais si je retire Inclure ( « Ordre ») Je reçois une exception lorsque la grille est enumarating l'objet ItemsInOrder (sur le champ de référence de la commande).

Est-ce erreur liée à la référence circulaire? Que devrais-je faire ? Créer un nouvel objet et remplacer manuellement sur le chemin de retour de la grille?

Était-ce utile?

La solution

Je l'ai résolu ce problème en créant une nouvelle liste des articles POCO de la liste renvoyée de la base de données. Je ne pense pas que ce soit la meilleure solution, et bien sûr pas un efficace, mais il fait le travail du réseau.

L'espoir d'une meilleure solution viendra.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top