【问题标题】:How to know class and Mapping class from HQL NHibernate如何从 HQL NHibernate 中了解类和映射类
【发布时间】:2014-07-13 04:41:49
【问题描述】:

我的想法是我想从 HQL 查询中了解实体和映射类。 例如,如果我有。 实体的 User.cs UserMap.cs 用于映射 User.cs

where I query with HQL like this>
var hql = session.CreateQuery("FROM User");

我怎么知道这个查询是针对 User.cs 和 UserMap.cs 映射运行的。 这是因为我想阻止用户查询某些实体。

非常感谢。

【问题讨论】:

    标签: c# nhibernate hql


    【解决方案1】:

    在深入研究 NHibernate 源代码并得到想法后自行修复,但想知道为什么以前没有其他人像我一样遇到同样的问题。

        [Test]
        public void Test()
        {
    
            var plan = CreateQueryPlan("FROM User u JOIN u.Country c", false);
            //Check(plan.ReturnMetadata, false, true);
            foreach(var type in plan.ReturnMetadata.ReturnTypes)
            {
                Log.DebugFormat("name: {0}", type.Name);
            }
        }
    
        public IQueryPlan CreateQueryPlan(string hql, bool scalar)
        {
            var sessionFactory = (ISessionFactoryImplementor)SessionFactory.GetNHSessionFactory();
            var plan = sessionFactory.QueryPlanCache.GetHQLQueryPlan(hql, false,
                  new CollectionHelper.EmptyMapClass<string, IFilter>());
            return plan;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多