Свободное отношение NHibernate один ко многим - нужен только последний ряд - PullRequest
0 голосов
/ 11 июня 2018

Нужна помощь с моим отображением, у меня есть, скажем, «Anclajes» и еще один, который регистрирует ошибку «Anclajes» с Error_anclajeID | AnclajeId | Status | DateTime Мне нужно, чтобы, когда Get all «Anclajes»,«Anclajes» имеет только 1 свойство с ошибкой LastOrDefault от Gq_error_anclaje.Это то, с чем я дошел, но не знаю, как сказать, получить последнюю строку

public MapGq_anclajes():base()
{ 
  References(x => x.Status_Anclaje).Column("AnclajeId").ReadOnly().Not.LazyLoad();
}

public class Gq_anclajes : _Gq_anclajes
{ 
    public virtual Gq_error_anclaje Error_Anclaje { get; set; } 
}

Сейчас я использую это, чтобы получить последний статус foreach "Anclaje"

foreach (item in Anclajes)
{
    var error = 
        Services
            .Get<ServGq_error_anclaje>()
            .FindBy(x => x.AnclajeId == item.AnclajeId)
            .OrderByDescending(c => c.Modificado)
            .FirstOrDefault();
}

1 Ответ

0 голосов
/ 12 июня 2018

Не будет ли это более эффективным:

var error = 
    Services
        .Query<ServGq_error_anclaje>()
        .Where(x => x.AnclajeId == item.AnclajeId)
        .OrderByDescending(c => c.Modificado)
        .Take(1);
...