web-dev-qa-db-fra.com

L'expression Inclure le chemin doit faire référence à une propriété de navigation définie sur le type

J'ai la méthode de référentiel suivante: -

public AccountDefinition GetCustomer2(int id)
{
    var c = entities.AccountDefinitions
            .Where(p=>p.ORG_ID==id)
            .Include(a => a.SDOrganization)
            .Include(a2 => a2.SiteDefinitions)
            .Include(a3 => a3.SDOrganization.AaaPostalAddresses)
            .Include(a4 => a4.SiteDefinitions.SelectMany
                              (a5 => a5.DepartmentDefinitions.SelectMany
                                    (a6 => a6.SDUsers.Select
                                          (a7 => a7.AaaUser))))
                                                   .SingleOrDefault();

    return c;
}

La méthode d'action suivante qui appelle la méthode ci-dessus: -

public ActionResult Details2(int id = 0)
{
    AccountDefinition cd = repository.GetCustomer2(id);
    return View("copy",cd);
}

mais quand je navigue vers la méthode d'action, j'obtiens l'erreur suivante sur la classe de référentiel: -

L'expression Inclure le chemin doit faire référence à une propriété de navigation définie sur le type. Utilisez des chemins en pointillés pour les propriétés de navigation de référence et l'opérateur Sélectionner pour les propriétés de navigation de la collection.

Alors, quel est le problème avec mon code?

22
john Gu

Je pense que vous voudrez peut-être faire quelque chose comme

public AccountDefinition GetCustomer2(int id)
        {

            var c = entities.AccountDefinitions.Where(p=>p.ORG_ID==id)
                .Include(a => a.SDOrganization)
                .Include(a2 => a2.SiteDefinitions)
                .Include(a3 => a3.SDOrganization.AaaPostalAddresses)
                .Include(a4 => a4.SiteDefinitions.Select(a5 => a5.DepartmentDefinitions.Select(a6 => a6.SDUsers.Select(a7 => a7.AaaUser))));

            return c;
        }
29
J.W.