NHibernate HQL-запросы - PullRequest
       4

NHibernate HQL-запросы

1 голос
/ 05 ноября 2010

Как писать HQL-запросы, используя NHibernate. Какие пространства имен я должен включить, чтобы все работало нормально. На самом деле у меня есть 2 таблицы Ticket и Trip, и я хочу подсчитать все записи в Trip, для которых нет соответствующей записи в Ticket. В тикете есть поле Tid, которое ссылается на идентификатор поездки. Кто-нибудь, пожалуйста, объясните мне с самого начала, как я буду писать запрос Hibernate NHQL для этого?

Ответы [ 2 ]

3 голосов
/ 05 ноября 2010

Вам не нужны никакие специальные пространства имен для использования HQL. Просто создайте простой проект NHibernate, и вы можете сразу начать писать HQL.

Вот пример из новой Поваренной книги NHibernate 3.0 , и вам также следует проверить книгу Nhibernate in Action, в которой есть более сложные примеры по HQL.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NHibernate.Cfg;
using NHibernate;

namespace ExecutableHQL
{
  class Program
  {
    static void Main(string[] args)
    {
      log4net.Config.XmlConfigurator.Configure();
      var nhConfig = new Configuration().Configure();
      var sessionFactory = nhConfig.BuildSessionFactory();

      using (var session = sessionFactory.OpenSession())
      {
        using (var tx = session.BeginTransaction())
        {
          int count = (int) session.CreateQuery("select count(*) from Trip").UniqueResult();

          tx.Commit();
        }
      }
    }
  }
}
0 голосов
/ 04 февраля 2016
    [HttpGet]
    public int GetCount()
    {
        var myQuery = session.CreateQuery(@" 
        select COUNT(*) from Table as t where 
        t.Id = :Id");
        myQuery.SetParameter("Id", this.Id);
        int count = Convert.ToInt32(myQuery.UniqueResult());
        return count;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...