Ich habe Domain ToplageNhibernate Projektion über verschachtelte verschachtelte Eigenschaften
public abstract class BaseEntity<T> where T: struct
{
public virtual T Id { get; set; }
public virtual bool Equals(BaseEntity<T> other)
}
public class Location : BaseEntity<Int32>
{
public User User {get;set;}
}
public class User : BaseEntity<Int32>
{
public string Name {get;set;
}
public OtherInfo Otherinfo {get;set;};
}
public class OtherInfo
{
public string preference {get;set;};
}
var criteria = session.CreateCriteria(typeof(Location), "alias");
criteria.CreateCriteria("User", "user", JoinType.InnerJoin);
criteria.CreateCriteria("user.Otherinfo", "userInfo",JoinType.InnerJoin);
criteria.Add(Restrictions.Eq("user.Id", 100));
criteria.SetProjection(Projections.Alias(Projections.Id(), "Id"), Projections.Alias(Projections.Property("user.Name"), "Name"), Projections.Alias(Projections.Property("userInfo.preference "), "pref"));
jetzt, wenn ich oben genannten Kriterien ausführen, gibt es Fehler auf userInfo.preference. {NHibernate.QueryException: konnte Eigenschaft nicht auflösen: Otherinfo von: Location.User Was ist Fehler hier. ist es verschachtelte Objekte Multi
es war nur meine Tippfehler in einem Alias tief zugreifen, während Frage veröffentlichen, seine in Code korrekt. – Techmaster
Haben Sie einen anderen Hinweis, lassen Sie es mich wissen, ich bin von sehr langer Zeit getroffen. – Techmaster
Ja sicher - verwenden Sie CreateAlias anstelle von CreateCriteria - CreateCriteria wird Sie in die Assoziation, CreateAlias ist natürlicher - aktualisiert das Beispiel –