Click here to Skip to main content
15,896,430 members
Articles / NHibernate

Object Relational Mapping (ORM) using NHibernate - Part 7 of 8 Completing the Ecommerce Example

Rate me:
Please Sign up or sign in to vote.
5.00/5 (7 votes)
15 May 2013CPOL7 min read 28.1K   2.6K   17  
A full series of 8 part articles to show One-To-One, Many-To-One, Many-To-Many associations mapping using NHibernate, Using Collections With NHibernate, Inheritance Relationships Using NHibernate, Lazy Initializations/Fetches Using NHibernate.
using System;
using System.Collections.Generic;
using NHibernate;
using NHibernate.Criterion;

namespace ECommerceSystem.Repository
{
    public class DBRepository<T>:IRepository<T>
    {
        public DBRepository()
        {

        }
        void IRepository<T>.addItem(T item)
        {
            using (ISession session = NHibernateHelper.Create().Session)
            {
                using (ITransaction trans = session.BeginTransaction())
                {
                    session.Save(item);
                    trans.Commit();
                }
            }
        }

        void IRepository<T>.removeItem(T item)
        {
            using (ISession session = NHibernateHelper.Create().Session)
            {
                using (ITransaction trans = session.BeginTransaction())
                {
                    session.Delete(item);
                    trans.Commit();
                }
            }
        }

        void IRepository<T>.updateItem(T item)
        {
            using (ISession session = NHibernateHelper.Create().Session)
            {
                using (ITransaction trans = session.BeginTransaction())
                {
                    session.Update(item);
                    trans.Commit();
                }
            }
        }

        T IRepository<T>.getItemById(long item_id)
        {
            T temp;
            using (ISession session = NHibernateHelper.Create().Session)
            {
                temp = session.Get<T>(item_id);
            }
            return temp;
        }

        int IRepository<T>.getItemCount()
        {
            int item_count = 0;
            string type_name = typeof(T).Name;
            using (ISession session = NHibernateHelper.Create().Session)
            {
                item_count = session.CreateSQLQuery("SELECT COUNT(*) FROM "+type_name).UniqueResult<Int32>();
            }
            return item_count;
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
India India
Software Developer developing in c#.net.

Comments and Discussions