Как получить данные из таблицы с помощью NHibernate, где? - PullRequest
2 голосов
/ 29 февраля 2012

Я использовал в своем проекте NHibernate так:

public class DBHelper
    {
        private static ISessionFactory sessions;

        public static void Configure()
        {            
            sessions = new Configuration().Configure().AddClass(typeof(Clients)).BuildSessionFactory();
            //ISessionFactory factory = Fluently.Configure().Mappings(m => m.FluentMappings.AddFromAssemblyOf<Clients>()).Database(MsSqlConfiguration.MsSql2005.ConnectionString(c => c.FromConnectionStringWithKey(DBConnection.GetConnectionString())).BuildSessionFactory();
        }

        public static void Insert(Clients pb)
        {            
            using (ISession session = sessions.OpenSession())           
            using (ITransaction tx = session.BeginTransaction())
            {                
                session.Save(pb);                
                tx.Commit();
            }
        }

        public static void UpdateContact(Clients pb)
        {
            using (ISession session = sessions.OpenSession())
            using (ITransaction tx = session.BeginTransaction())
            {
                session.Update(pb);
                tx.Commit();
            }
        }

        public static void DeleteContact(Clients pb)
        {
            using (ISession session = sessions.OpenSession())
            using (ITransaction tx = session.BeginTransaction())
            {
                session.Delete(pb);
                tx.Commit();
            }
        }
    }

У меня есть дерево простых методов: вставить, удалить, сохранить. Теперь мне нужно получить все данные из таблицы БД или некоторые данные, как аналог выберите * из клиентов, где id = '...'

1 Ответ

9 голосов
/ 29 февраля 2012

Ваши варианты:

Лично мне очень нравится API QueryOver:

var clients = session.QueryOver<Clients>().Where(x => x.Name == "Foobar").List();

Если вам нужно получить сущность только по ее идентификатору, вы можете использовать Получить или загрузить

var client = session.Get<Clients>(5);

Если вы ищете учебники NHibernate, вы наверняка найдете много информации. Я слышал хорошие новости о Summer Of NHibernate , хотя лично я их не видел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...