私には2つの方法があり、重複が好きではありません:
public Order LatestOrderOver(decimal amount)
{
    return session.QueryOver<Order>()
        .Where(o => o.Amount > amount)
        .OrderBy(sr => sr.CompleteUtcTime).Desc
        .Take(1)
        .SingleOrDefault<Order>();
}
public Order LatestAmericanOrderOver(decimal amount)
{
    return session.QueryOver<Order>()
        .Where(o => o.Amount > amount && o.Country == "USA")
        .OrderBy(sr => sr.CompleteUtcTime).Desc
        .Take(1)
        .SingleOrDefault<Order>();
}
同様の基準(Where 句) が QueryOver で使用され、最後に同様のオプションがある場合、重複を避ける最善の方法は何ですか?