/// <summary>
        /// ����nh����
        /// </summary>
        /// <param name="facilityConfiguration"></param>
        /// <returns></returns>
        public NHibernate.Cfg.Configuration GetConfiguration(IConfiguration facilityConfiguration)
        {
            var configuration = new DefaultConfigurationBuilder().GetConfiguration(facilityConfiguration);

            //����ӳ��
            var assemblies = facilityConfiguration.Children["assemblies"];
            assemblies.Children.ForEach(o => configuration.AddMappingsFromAssembly(Assembly.Load(o.Value)));
            //�����������
            var fluent = FluentNHibernate.Cfg.Fluently.Configure(configuration);
            var classes = facilityConfiguration.Children["classes"];

            if (classes == null) return configuration;

            classes.Children.ForEach(o =>
            {
                var m = new PersistenceModel();
                var type = Type.GetType(o.Value, false);
                if (type == null)
                    throw new Exception("�Ҳ�������" + o.Value + "����ȷ���Ƿ����ø��������ڵij���");

                m.Add(type);
                using (var stream = new MemoryStream())
                using (var writer = new StreamWriter(stream))
                {
                    m.WriteMappingsTo(writer);
                    writer.Flush();
                    stream.Seek(0, 0);
                    configuration.AddInputStream(stream);
                }
            });

            return configuration;
        }
        /// <summary>
        /// 生成nh配置
        /// </summary>
        /// <param name="facilityConfiguration"></param>
        /// <returns></returns>
        public NHibernate.Cfg.Configuration GetConfiguration(IConfiguration facilityConfiguration)
        {
            var configuration = new DefaultConfigurationBuilder().GetConfiguration(facilityConfiguration);

            //程序集映射
            var assemblies = facilityConfiguration.Children["assemblies"];

            assemblies.Children.ForEach(o => configuration.AddMappingsFromAssembly(Assembly.Load(o.Value)));
            //逐个类型声明
            var fluent  = FluentNHibernate.Cfg.Fluently.Configure(configuration);
            var classes = facilityConfiguration.Children["classes"];

            if (classes == null)
            {
                return(configuration);
            }

            classes.Children.ForEach(o =>
            {
                var m    = new PersistenceModel();
                var type = Type.GetType(o.Value, false);
                if (type == null)
                {
                    throw new Exception("找不到类型" + o.Value + ",请确认是否引用该类型所在的程序集");
                }

                m.Add(type);
                using (var stream = new MemoryStream())
                    using (var writer = new StreamWriter(stream))
                    {
                        m.WriteMappingsTo(writer);
                        writer.Flush();
                        stream.Seek(0, 0);
                        configuration.AddInputStream(stream);
                    }
            });

            return(configuration);
        }