using System; using NHibernate; using NHibernate.Cfg; using System.Collections.Generic; using System.Collections; namespace Peon.Database { public class DataAccess : IDisposable { private static Configuration cfg; private ISessionFactory factory; private ISession session; private ITransaction transaction; public DataAccess() { cfg = new Configuration(); cfg.AddAssembly("Peon.Game"); factory = cfg.BuildSessionFactory(); session = factory.OpenSession(); } public void Save(object obj) { transaction = session.BeginTransaction(); session.Save(obj); transaction.Commit(); session.Close(); } public T Load(string id) { T obj = (T)session.Load(typeof(T), id); session.Close(); return obj; } public IList Load() { IList list = session.CreateCriteria(typeof(T)).List(); session.Close(); return list; } #region IDisposable Members public void Dispose() { transaction = null; session = null; factory = null; cfg = null; GC.Collect(); } #endregion } }