У нас есть проект, использующий Fluent NHibernate. Существует объект под названием BluePart со свойством Oem типа Oem.
public class BluePart : DomainEntity
{
...
public virtual Oem Oem { get; set; }
}
Объект Oem имеет несколько свойств, включая OemCode и OemDescription.
public class Oem : DomainEntity
{
...
public virtual string OemCode { get; set; }
public virtual string OemDescription { get; set; }
}
Я пытаюсь создать запрос linq с использованием лямбда-выражений, которые будут получать все отдельные Oems из списка BlueParts (2,7 миллиона записей). В идеале он должен производить следующий sql (который работает <1сек): </p>
select distinct o.OemCode, o.OemDescription
From BluePart b inner join Oem o on o.OemId = b.Oem_id
Ниже приведен построенный мной запрос, который возвращает все Oems, независимо от различий.
var oem = repository.Query<BluePart>().Select(x => new Oem { OemCode =
x.Oem.OemCode, OemDescription = x.Oem.OemDescription}).ToList();
Я думал, что этот запрос будет легко построить, но это не так. При запуске GroupBy (.GroupBy (z => z.OemCode)) я получаю сообщение об ошибке, в котором говорится, что свойство, которое я пытаюсь использовать для GroupBy, не является свойством Bluepart (чего не должно быть, поскольку я группирую свойство Oem)