Выражение пути Include должно ссылаться на свойство навигации, определенное в типе
У меня есть следующий метод репозитория: -
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;
}
Следующий метод действий, который вызывает вышеупомянутый метод: -
public ActionResult Details2(int id = 0)
{
AccountDefinition cd = repository.GetCustomer2(id);
return View("copy",cd);
}
но когда я перейду к методу действий, я получаю следующую ошибку в классе репозитория: -
В выражении Include path должно быть указано свойство навигации определенных на типе. Использовать пунктирные пути для справочной навигации свойства и оператор Select для навигации по коллекции свойства.
Итак, что не так с моим кодом?
Ответы
Ответ 1
Я думаю, вы можете сделать что-то вроде
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;
}