コード例 #1
0
        public virtual object[] GetProperties(string[] properties, string idName, object idValue)
        {
            var hql = "SELECT ";

            foreach (var p in properties)
            {
                if (!String.IsNullOrEmpty(p))
                {
                    hql += String.Format("t.{0}, ", p);
                }
            }

            // Replace the trailing comma and space with just a space
            hql  = hql.TrimEnd(", ".ToCharArray());
            hql += " ";

            // Now add the FROM and WHERE clauses
            hql += String.Format("FROM {0} t ", typeof(T).FullName);
            hql += String.Format("WHERE t.{0} = ?", idName);

            var query = IsStatelessSession
                                ? StatelessSession.CreateQuery(hql)
                                : Session.CreateQuery(hql);

            return(query
                   .SetParameter(0, idValue)
                   .List <object>()
                   .ToArray());
        }
コード例 #2
0
        public virtual T GetByProperty(string property, object value)
        {
            var hql = new StringBuilder();

            hql.Append(String.Format("FROM {0} t ", typeof(T).FullName));
            hql.Append(String.Format("WHERE t.{0} = ?", property));

            var query = IsStatelessSession
                                ? StatelessSession.CreateQuery(hql.ToString())
                                : Session.CreateQuery(hql.ToString());

            return(query
                   .SetParameter(0, value)
                   .UniqueResult <T>());
        }