SetFetchMode-Aufruf ignoriert

Ich habe ein Problem mit dem SetFetchMode-Aufruf in der Criteria API in der folgenden Abfrage:

DetachedCriteria.For<User>()
                .Add<User>(u => u.Status == UserStatus.Live)
                .CreateAlias("UniqueId", "uid")
                .CreateAlias("Companies", "comp")
                .Add(Restrictions.Disjunction()
                                 .Add(Restrictions.Like("uid.Uid", context.Text, MatchMode.Anywhere))
                                 .Add(Restrictions.Like("comp.Name", context.Text, MatchMode.Anywhere)))
                .SetFetchMode("Companies", FetchMode.Eager));

Meine Klassen

public class User : EntityBase<int>
{
    public virtual UniqueId UniqueId { get; set; }

    public virtual ISet<Company> Companies { get; set; }
}

public class Company : EntityBase<int>
{
    public virtual string Name { get; set; }
}

public class UniqueId : EntityBase<int>
{
    public virtual string Uid { get; set; }
}

Und Zuordnungen

public sealed class UserMap : ClassMap<User>
{
    public UserMap()
    {
        Table("users");

        Id(x => x.Id).GeneratedBy.Native().Column("id");

        References(x => x.UniqueId).Column("int_unique_id_ref");

        HasMany(x => x.Companies)
            .KeyColumn("user_id")
            .Inverse()
            .AsSet();
    }
}

public sealed class CompanyMap : ClassMap<Company>
{
    public CompanyMap()
    {
        Table("company");

        Id(x => x.Id).GeneratedBy.Native().Column("id");

        Map(x => x.Name).Column("name");
    }
}

public sealed class UniqueIdMap : ClassMap<UniqueId>
{
    public UniqueIdMap()
    {
        Table("tbl_trading_partner_unique_id");

        Id(x => x.Id).GeneratedBy.Native().Column("int_id");

        Map(x => x.Uid).Column("str_unique_id");
    }
}

Aber nach Erhalt der Benutzerliste fragt Nhibernate die Datenbank erneut ab, um die Unternehmen erneut für jeden Benutzer zu erfassen. NHibernate ignoriert nur den Aufruf von SetFetchMode, weil ich versucht habe, so etwas zu schreiben:

.SetFetchMode("NotExistingProp", FetchMode.Eager)

Nhibernate gibt keine Ausnahmen aus.

Ich habe auch versucht, Lazy in den Zuordnungen auf false zu setzen, aber es hat auch nicht geholfen. Habe keine Ahnung, wie man das behebt, kann jemand

und danach lud Nhibernate eine Sammlung mit Entitäten. Aber er ignoriert immer noch SetFetchMode, da kann ich alles schreiben.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage