/// <summary>
        /// 初始化一个<see cref="DbContextInitializerConfig"/>类型的新实例
        /// </summary>
        internal DbContextInitializerConfig(DbContextInitializerElement element)
        {
            Type type = Type.GetType(element.InitializerTypeName);

            if (type == null)
            {
                throw new InvalidOperationException(Resources.DbContextInitializerConfig_InitializerNotExists.FormatWith(element.InitializerTypeName));
            }
            InitializerType = type;

            string binPath = AppDomain.CurrentDomain.RelativeSearchPath ?? AppDomain.CurrentDomain.BaseDirectory;

            string[] mapperFiles = element.EntityMapperFiles.Split(',')
                                   .Select(fileName => fileName.EndsWith(".dll") ? fileName : fileName + ".dll")
                                   .Select(fileName => Path.Combine(binPath, fileName)).ToArray();
            EntityMapperAssemblies = mapperFiles.Select(Assembly.LoadFrom).ToList();

            if (element.CreateDatabaseInitializer != null && !element.CreateDatabaseInitializer.InitializerTypeName.IsMissing())
            {
                CreateDatabaseInitializerType = Type.GetType(element.CreateDatabaseInitializer.InitializerTypeName);
                if (CreateDatabaseInitializerType == null)
                {
                    throw new InvalidOperationException(Resources.ConfigFile_NameToTypeIsNull.FormatWith(element.CreateDatabaseInitializer.InitializerTypeName));
                }
            }
        }
        /// <summary>
        /// 初始化一个<see cref="DbContextInitializerConfig"/>类型的新实例
        /// </summary>
        internal DbContextInitializerConfig(DbContextInitializerElement element)
        {
            Type type = Type.GetType(element.InitializerTypeName);

            if (type == null)
            {
                throw new InvalidOperationException("上下文初始化类型“{0}”不存在".FormatWith(element.InitializerTypeName));
            }
            InitializerType = type;

            string[] mapperFiles = element.EntityMapperFiles.Split(',')
                                   .Select(fileName => fileName.EndsWith(".dll") ? fileName : fileName + ".dll")
                                   .Select(fileName => Path.Combine(AppDomain.CurrentDomain.RelativeSearchPath, fileName)).ToArray();
            EntityMapperAssemblies = mapperFiles.Select(Assembly.LoadFrom).ToList();

            if (element.CreateDatabaseInitializer != null && element.CreateDatabaseInitializer.InitializerTypeName != null)
            {
                CreateDatabaseInitializerType = Type.GetType(element.CreateDatabaseInitializer.InitializerTypeName);
            }
        }