Nhibernate實戰(二)

2.本人預期是想用CodeSmith通過Mappping文件來生成DB﹐并和設計的DB對照一下。但有的同事建議本人用MyGeneration通過DB來生成Mapping﹑Entity﹑DA (and Interface)﹑Business Logic (and Interface)﹐這樣可以減少寫錯Mapping的可能性﹔若修改﹐只要再次生成這些文件就行了。而且MyGeneration的語法就是.NET語法﹐開發也快。
 
2.1   先手寫DAL的模板(IDA,SessionFactory,DA)
主要使用對象ISessionFactoryConfiguration﹑ISessionITransaction
public partial class SessionFactory
    {
        public SessionFactory()
        { }

        private static ISessionFactory sessions;
        private static Configuration cfg;
        static readonly object padlock = new object();

        public static ISession OpenSession()
        {
            if (sessions == null)
            {
                lock (padlock)
                {
                    if (sessions == null)
                    {
                        BuildSessionFactory();
                    }
                }
            }
            return sessions.OpenSession();
        }

        private static void BuildSessionFactory()
        {
            cfg = new Configuration();
            cfg.AddAssembly("Library.Entity");

            sessions = cfg.BuildSessionFactory();
        }
    }

posted on 2008-05-20 09:45  squll201  阅读(121)  评论(0)    收藏  举报

导航