代码改变世界

NHibernate 的序列化为了支持Web, 需要进行特定的配置.

2008-02-28 23:38  爱车龟速兔  阅读(283)  评论(0编辑  收藏  举报
 

NHibernate 的序列化为了支持Web, 需要进行特定的配置, 吴伟的代码生成工具不能生成直接支持Web的配置文件. 

 /// <summary>配置初始化的封装</summary>

    public class DatabaseStarter : ActiveRecordStarter

    {

        static Type[] Types = new System.Type[] {

                        typeof(Ne),

                        typeof(NeCmdPort),

                        typeof(City),

                        typeof(Vendor),

                        typeof(NetElementType),

                        typeof(NeVirtualPort),

                        typeof(Role),

                        typeof(FunctionOperation),

                        typeof(CommandSet),

                        typeof(ResourceGroup),

                        typeof(Command),

                        typeof(RoleUser),

                        typeof(RoleUserGroup),

                        typeof(RoleResOperation),

                        typeof(RoleResCommandSet),

                        typeof(ResourceOperation),

                        typeof(SystemConfig)};

        static bool IsInitialized;

        /// <summary>Initialize database connection configuration.</summary>

        public static void Initialize(string connectionString)

        {

            if (DatabaseStarter.IsInitialized == false)

            {

                lock (DatabaseStarter.Types)

                {

                    StringReader reader = new StringReader(string.Format("<activerecord isWeb=""true"">       <config>            <add key=""hibernate.connection.driver class"" value=""NHibernate.Driver.SqlClientDriver""/>           <add key=""hibernate.dialect"" value=""NHibernate.Dialect.MsSql2000Dialect""/>         <add key=""hibernate.connection.provider"" value=""NHibernate.Connection.DriverConnectionProvider""/>          <add key=""hibernate.connection.connection_string"" value=""{0}""/>      </config>   </activerecord>", connectionString));

                    XmlConfigurationSource src = new XmlConfigurationSource(reader);

                    ActiveRecordStarter.Initialize(src, DatabaseStarter.Types);

                    DatabaseStarter.IsInitialized = true;

                }

            }

        }

}