Динамический запрос Linq и включение несвязанного объекта

У меня есть сценарий, в котором у меня есть 3 сущности

class entityA
{
    public Guid Id { get; set; }
    public string NameA { get; set; }
}


class entityB
{
    public Guid Id { get; set; }
    public string NameB { get; set; }
    public entityA EntityA { get; set; }
}

class entityC
{
    public Guid Id { get; set; }
    public Guid HistoryId { get; set; }
}

EntityA и entityB имеют отношение, но entityC не имеет отношения ни к одному из них.

Чтобы получить данные entityA и связанных с ним данных entityB, я могу сделать

db.entityA.Include(x=>x.entityB)

но я не могу сделать include() с entityA и entityC, потому что нет никакой связи между entityA и entityC.

Это возможно только с синтаксисом Linq Query, как показано ниже:

from A in entityA join C in entityC on A.Id equals C.HistoryId select A

Есть ли способ включить () или присоединиться к entityA и entityC, используя синтаксис Linq Lambda?


person Developerzzz    schedule 09.04.2017    source источник
comment
Проверьте этот stackoverflow.com/a/2767742/2224701.   -  person Vojtěch Dohnal    schedule 10.04.2017
comment
Возможный дубликат Как выполнить соединение в linq to sql с синтаксисом метода?   -  person Vojtěch Dohnal    schedule 10.04.2017


Ответы (1)


Согласно вашему запросу, логически существует связь между A и C. Вы можете поместить атрибут ForeignKey в сопоставление объектов класса C, а затем вы можете использовать Include в запросе.

class entityC
{
  public Guid Id { get; set; }

  public Guid HistoryId { get; set; }

  [ForeignKey("HistoryId")]
  public entityA EntityA { get; set; }
}
person Jignesh Variya    schedule 10.04.2017