/// <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); } }