【问题标题】:nhibernate +criteria. How to return result without one referenced entity休眠+标准。如何在没有一个引用实体的情况下返回结果
【发布时间】:2011-04-26 16:13:08
【问题描述】:

我有标准:

ICriteria criteria = Session.CreateCriteria<Entity>()
                .SetFetchMode("Entity1", FetchMode.Eager)
                .SetFetchMode("Entity2", FetchMode.Select)
                .SetMaxResults(max)
                .SetFirstResult(min)
                .Add(Restrictions.Eq("Available", true))
                .CreateAlias("Entity3", "b")//, NHibernate.SqlCommand.JoinType.InnerJoin)
                .Add(Restrictions.Eq("b.Name", variable))
                .SetResultTransformer(new NHibernate.Transform.DistinctRootEntityResultTransformer());

当我执行这个查询时,Entity3 中的所有字段都会返回。 我怎样才能执行它并得到只有引用 Entity1 和没有 Entity3 的 Entity2 的 Entity 对象?

【问题讨论】:

  • 这很有可能是可撤销的。为什么不希望引用 Entity3 对象?

标签: nhibernate criteria


【解决方案1】:

也许这会有所帮助。

IList criteria2 = session.CreateCriteria(typeof(class1), "cl1")
.CreateAlias("subclass1.subclass2", "s2")
.CreateAlias("subclass1.subclass3", "s3")
.SetProjection(Projections.ProjectionList()
.Add(Projections.Property("s2.NAME"))
.Add(Projections.Property("s3.CODE")))
.List();

您可以根据需要深入映射类以创建别名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-27
    • 2012-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多