2013-07-11 17 views
22

Aşağıdaki deposu yöntemi vardır: -yol ifade türüne tanımlanan bir gezinti özelliği başvurmalıdır dahil

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; 
} 

yukarıdaki yöntemi çağırır aşağıdaki eylem yöntemi: -

public ActionResult Details2(int id = 0) 
{ 
    AccountDefinition cd = repository.GetCustomer2(id); 
    return View("copy",cd); 
} 
i Eylem Metodu gittiğinizde

ama, ben depo sınıfına şu hatayı alıyorum: -

The Include path expression must refer to a navigation property defined on the type. Use dotted paths for reference navigation properties and the Select operator for collection navigation properties.

Kodumdaki sorun nedir?

cevap

29

Sana cevap için

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; 
     } 
+0

sayesinde böyle bir şey yapmak isteyebilirsiniz düşünüyorum, ama SDOrganization bir .Select yoktur. Ve ben senin kodunu yazarsak aşağıdaki hatayı alırım: - "" Hata 'TMS.Models.SDOrganizasyon' 'Seç' ve hiçbir uzantı yöntemi için bir tanım içermez 'Seç' türünün ilk argümanını kabul et ' TMS.Models.SDOrganizasyon 'bulunabilir (kullanarak bir yönerge veya bir montaj başvurusu eksik misiniz? "" –

+7

Gördüğünüzde, sorun muhtemelen SelectMany olduğunu, SelectMany seçmek için onun yerine değiştirin. –

+1

Ben başka bir sorun üzerinde sıkışmış ama ur Cevap bana doğru yönde işaret etti –

İlgili konular