/// <summary> /// 根据配置信息找到或创建工厂,并提供一个会话对象 /// </summary> /// <param name="dac">数据访问配置类</param> /// <returns>返回值为一个回话对象</returns> public static ISession GetSession(DataAccessorConfiguration dac) { lock (dict.SyncRoot) { if (dict.ContainsKey(dac)) { return((dict[dac] as HBData).Factory.OpenSession()); } else { Configuration cfg = new Configuration(); foreach (Assembly asse in dac.MappingsAssemblies) { cfg.Configure(dac.ConfigFile).AddAssembly(asse); } if (dac.NamingStrategy != null) { cfg.SetNamingStrategy(dac.NamingStrategy); } ISessionFactory factory = cfg.BuildSessionFactory(); NS.Component.NHibernate.NHibernateFactory.Initialize(factory); HBData data = new HBData() { Configuration = cfg, Factory = factory }; dict.Add(dac, data); return(factory.OpenSession()); } } }
public NHibernateDataAccessor(DataAccessorConfiguration config) { this.config = config; if (config.IsoLevel != null) { IsoLevel = config.IsoLevel.Value; } }
public static DataAccessorConfiguration ConfigureAll(this DataAccessorConfiguration configuration, string storageName) { return(configuration .AddStorage($"{storageName}.json", DataSourceType.Json) .AddStorage($"{storageName}.xml", DataSourceType.Xml) .AddStorage($"{storageName}", DataSourceType.InMemory) .AddStorage($@"Data Source={storageName}.db;", DataSourceType.Sqlite)); }
public WCFNHibernateDataAccessor(DataAccessorConfiguration config) { this.config = config; if (config.IsoLevel != null) { IsoLevel = config.IsoLevel.Value; } NHibernateFactory.Initialize(this.config); }
/// <summary> /// 清理某个数据库连接 /// </summary> /// <param name="dac">传入的参数为构建数据库连接时使用的配置对象</param> public static void Clear(DataAccessorConfiguration dac) { lock (dict.SyncRoot) { if (dict.ContainsKey(dac)) { HBData hbdata = dict[dac] as HBData; dict.Remove(dac); hbdata.Factory.Dispose(); hbdata = null; } } }
public static void Initialize() { DataAccessorConfiguration config = new DataAccessorConfiguration(); // TODO: 初始化为适当的值 config.MappingsAssemblies = new List <System.Reflection.Assembly>(); config.MappingsAssemblies.Add(System.Reflection.Assembly.GetExecutingAssembly()); config.MappingsAssemblies.AddRange(NS.Framework.Config.PlatformConfig.ServerConfig.DataBaseSetting.GetMappingAssemblys); var configFileName = string.Format("{0}-{1}", "car", NS.Framework.Config.PlatformConfig.ServerConfig.DataBaseSetting.ConfigFile); //var configFileName = config.ConfigFile; if (NS.Framework.Config.PlatformConfig.ServerConfig.ConfigFilePath.EndsWith("bin")) { config.ConfigFile = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "bin", configFileName); } else { config.ConfigFile = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, configFileName); } _config = config; }
public static void Initialize(DataAccessorConfiguration config) { _config = config; }