NHibernate-从投影列表中排除属性(select子句)?
我有这样的课NHibernate-从投影列表中排除属性(select子句)?,nhibernate,hibernate,hql,criteria,Nhibernate,Hibernate,Hql,Criteria,我有这样的课 public class Agreement { public virtual string ArrgKey { get; set; } public virtual string SubjectCode { get; set; } // mapped as a HasMany to AgreementStateCountyRelation public virtual IList<AgreementStateCountyRelation&g
public class Agreement
{
public virtual string ArrgKey { get; set; }
public virtual string SubjectCode { get; set; }
// mapped as a HasMany to AgreementStateCountyRelation
public virtual IList<AgreementStateCountyRelation> StateCounties { get; set; }
}
public class AgreementStateCountyRelation
{
public virtual string ArrgKey { get; set; }
public virtual State State { get; set; } // State has a StateAbbr property
public virtual County County { get; set; }
}
公共类协议
{
公共虚拟字符串ArrgKey{get;set;}
公共虚拟字符串SubjectCode{get;set;}
//映射为HasMany到AgreementStateCounty关系
公共虚拟图书馆
另一个有这个问题的人(不幸的是,他不能做得比像我一样设置投影更好):
var list = session.CreateQuery("select a from Agreement a
join a.StateCounties sc
join sc.State s
where s.StateAbbr = ?")
.SetParameter(0, "TX")
.List<Agreement>();
DetachedCriteria dc = DetachedCriteria.For<Agreement>("a");
dc.CreateAlias("a.StateCounties", "sc");
dc.CreateAlias("sc.State", "s");
dc.Add(Restrictions.Eq("s.StateAbbr", "TX"));
var list = dc.GetExecutableCriteria(session).List<Agreement>();
DetachedCriteria dc = DetachedCriteria.For<Agreement>("a");
dc.CreateAlias("a.StateCounties", "sc");
dc.CreateAlias("sc.State", "s");
dc.SetProjection(Projections.ProjectionList()
.Add(Projections.Property("ArrgKey"), "ArrgKey")
.Add(Projections.Property("SubjectCode"), "SubjectCode"));
dc.SetResultTransformer(Transformers.AliasToBean<Agreement>());
dc.Add(Restrictions.Eq("s.StateAbbr", "TX"));
var agreements = dc.GetExecutableCriteria(session).List<Agreement>();
DetachedCriteria dc = DetachedCriteria.For<Agreement>("a");
var agreements = dc.GetExecutableCriteria(session).List<Agreement>();
DetachedCriteria dc = DetachedCriteria.For<Agreement>("a");
dc.CreateAlias("a.StateCounties", "sc");
dc.CreateAlias("sc.State", "s");
var agreements = dc.GetExecutableCriteria(session).List<Agreement>();