小马的天空
我为软狂

导航

 
项目中应用了一个运用nHibernate的基类,调用nHibernate更简单,方便,基本不用掌握别的知识,只要会写HQL语句就行了!这里假设你nHibernate前面的ORM工作都已经完成.
using System;
using System.Collections.Generic;
using System.Text;
using NHibernate;
using NHibernate.Cfg;
using System.Reflection;
using System.Collections;

namespace eLogistics.Data.Domain
{
    
public abstract class  BusinessObject
    
{
        
private region. Don't touch these codes private region. Don't touch these codes
        
abstract public Int32 id{get;set;}
        
abstract public DateTime createDate get;set;}
        
abstract public DateTime modifyDate get;set;}
        

        
public Boolean Create()
        
{
            
return DoDBAction(ACTION.CREATE);
        }

        
public Boolean Delete()
        
{
            
return DoDBAction(ACTION.DELETE);
        }

        
public Boolean Update()
        
{
            
return DoDBAction(ACTION.UPDATE);
        }

        
public  static Object Load(Type thetype,object ID)
        
{
            ISession session 
= null;
            Object obj
=null;
            
try
            
{
                session 
= SessionFactory.OpenSession();
                obj 
= session.Load(thetype, ID);
            }

            
catch (Exception)
            
{
            }

            
finally
            
{
                
if(session!=null)
                    session.Close();
            }

            
return obj;
           
        }

        
public static IList Query(string hql) 
        
{
            ISession session 
= null;
            IList list 
= null;
            
try
            
{
                session
= SessionFactory.OpenSession();
                IQuery q 
= session.CreateQuery(hql);
                list 
= q.List();
            }

            
catch (Exception)
            
{
            }

            
finally
            
{
                
if (session != null) session.Close();
            }

            
return list;
        }

        
public static IList QueryRange(string hql, int first, int count)
        
{
            ISession session 
= null;
            IList list 
= null;
            
try
            
{
                session
= SessionFactory.OpenSession();
                IQuery q 
= session.CreateQuery(hql);
                q.SetFirstResult( first);
                q.SetMaxResults(count);
                list 
= q.List();

            }

            
catch (Exception)
            
{
            }

            
finally
            
{
                
if (session != null) session.Close();
            }

            
return list;
        }

        
public static Object QueryGetFirst(string hql)
        
{
            IList list 
= Query(hql);
            
if (list == null||list.Count==0)
                
return null;
            
return list[0];
        }

    }

}


posted on 2006-05-24 19:26  Vinson  阅读(337)  评论(0)    收藏  举报