6
我有域類位置Nhibernate的投影超過嵌套嵌套屬性
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"));
現在當我執行上述標準,它給出了關於userInfo.preference錯誤。 {NHibernate.QueryException:無法解析屬性:Otherinfo:Location.User 這裏有什麼錯誤。是不是因爲多嵌套對象
這只是我的錯字,而發佈的問題,在代碼中它的正確。 – Techmaster
你有沒有其他線索,請讓我知道,我很長時間以來感到震驚。 – Techmaster
是的 - 使用CreateAlias代替CreateCriteria - CreateCriteria會將你向下移動關聯,CreateAlias更自然 - 更新示例 –